Mine sisusse
Otsi siit
  • Rohkem valikuid...
Otsi tulemusi mis sisaldab...
Otsi tulemusi...

[TASUTA] Koduleht koos registeerimis, login, uudiste ja chati scriptiga!

Soovitatud postitused

VIP

Ise võid ka teha UTF-8-ks ja panna meta tagiga, et ta tunneks täpitähed ära ;).


b_560_95_1.png

Jaga seda postitust


Postituse link
Share on other sites
SUPERVIP
Author of the topic Postitas
Tabelid on ka vist vales kodeeringus.

 

No mida vittu nyyd sa jälle tuled siia hatema. Kõik ei ole sinusugused et kirjutame lampi bugfree koodi. ofc kui ma mingi ulme pro oleksin 5a õppinud siis vot selliseid vigu ei oleks. aga kuna paar kuud tegelenud siis sa arvad et ma teen sul täiesti perfectse koodi?

 

Äkki siis ka ytleksid et kus suunast need tabelid on valesti siis?


no pain, no gain

no work, no results

Jaga seda postitust


Postituse link
Share on other sites
Külaline misterx
No mida vittu nyyd sa jälle tuled siia hatema. Kõik ei ole sinusugused et kirjutame lampi bugfree koodi. ofc kui ma mingi ulme pro oleksin 5a õppinud siis vot selliseid vigu ei oleks. aga kuna paar kuud tegelenud siis sa arvad et ma teen sul täiesti perfectse koodi?

 

Äkki siis ka ytleksid et kus suunast need tabelid on valesti siis?

Kui ma su koodi üle viriseda tahaksin, oleks mu postitused kõvasti pikemad. Taheti saada täpitähed tööle, pakkusin välja, milles viga võib olla, sina tuled lõugama siia.

Jaga seda postitust


Postituse link
Share on other sites
SUPERVIP
Author of the topic Postitas
Kui ma su koodi üle viriseda tahaksin, oleks mu postitused kõvasti pikemad. Taheti saada täpitähed tööle, pakkusin välja, milles viga võib olla, sina tuled lõugama siia.

 

Täpitähed töötavad väga hästi kui vaatad seda jorksx.eu/forv lehte.

Yks vend ytles kh et täpitähed ei tööta, notepadist panin igale failile utf-8 without bom ja asi toimis.


no pain, no gain

no work, no results

Jaga seda postitust


Postituse link
Share on other sites

Lisaksin isegi siia juurde, kuigi teema on vana:

 

Nimelt on suur turvarisk. Sain ka kasutajate tabelile ligi, läbi logimise ja läbi registreerumise.

 

Lisaks on ka chatil turvaoht, mille kaudu saaks andmebaasiandmed kätte.

Muudetud liikme paksmatu'i poolt

Jaga seda postitust


Postituse link
Share on other sites

umm, ma siin lugesin postitatud kirju ja kahjuks pole leidnud ühtegi sellst kommentaari, kus oleks õpetatud natuke või head nõu antud, aga ma üritan :)

 

1. html meta tag utf-8 näiteks, see näitab lehel täpitähti

 

[color=#881280][font=monospace][/font][/color]

 

2. jquery AJAX, näide:

 

$.post('leht_kuhu_andmed_saadad.php',{muutuja1: muutuja1_v22rtus, muutuja2: muutuja2_v22rtus, jne ... }, function(tagasi_tulevad_andmed){
   siin teed nende andmetega mis ise heaks arvad
   nt: alert(tagasi_tulevad_andmed);
});

on ka võimalik:
   $.get
   $.ajax (see on põhjalikum kui post või get päring, aga töötab samamoodi).

 

Soovitan otsida kusagilt, kuidas saada andmebaasist ainult uuemad andmed, praegu sa tood lehele iga kord terve andmebaasis oleva chati, väike nõuanne: Korja terve chat array-sse, kui index lehele tood, siis salvesta nt sessiooni ära viimase saadetud chati id, mis tal andmebaasis on, peale seda iga kord ajax kontrollib, kas andmebaasis on uusi kirjeid, mille ID on suurem, kui see, mis viimati lehele toodi. Kui on, siis kasuta jquery append käsku, see lisab uue sõnumi vanade sekka, ilma et ta tervet chat box-i koguaeg uuendaks :)

 

ise soovitaksin kasutada HTML5 SSE-d, server saadab kasutajale ise andmeid kasutades Json-i (pmst javascript).

Lihtne näide: http://www.w3schools.com/html/html5_serversentevents.asp

Põhjalik näide : http://www.html5rocks.com/en/tutorials/eventsource/basics/

 

3. OOP PHP // (PDO, või new mysqli())

PHP poole pealt soovitan tutvuda Objekt Orienteeritud PHP-ga, sul on endal vähem tööd programmeerides, ta on küll mitu korda raskem kui tavaline PHP, aga tänapäeval ei kirjutata enam kusagil tavalist :)

Andmebaasiga ühendamisel ära kunagi kasuta mysql_connect käsku, see on väga ebaturvaline, kasuta kas PDO või new mysqli()

 

väike näide sulle OOP PHP ja mysqli-ga ühendamiseks:

class klassi_nimi {
   private $hostname;
   private $database;
   private $username;
   private $password;

   private $connection;

/**See funktioon loob objekti, ühesõnaga salvestab kõik vajaliku klassimuutujatesse*/
   function __construct ($hostname, $database, $username, $password) {
       $this->hostname= $hostname;
       $this->database = $database;
       $this->username = $username;
       $this->password = $password;

       $this->create_connection();
   }
/**Avab andmebaasiga ühenduse*/
   private function create_connection () {
       $this->connection = new mysqli($this->hostname, $this->username, $this->password, $this->database);
   }
/**Tagastab andmebaasi ühenduse vajadusel*/
   public function get_connection () {
       return $this->connection();
   }
/**Sulgeb ühenduse, kui kõik eelnevad päringud on tehtud*/
   function __destruct () {
       $this->connection->close();
   }
}
[i]__construct[/i] ja[i] __destruct[/i] lähevad automaatselt tööle, kui klassi suunad, neid ei pea välja kutsuma!
[i]__construct[/i] siis esimesena ja [i]__destruct[/i] viimasena, kus sa sulged andmebaasi ühendused, või siis session_destroy()

$connection = new klassi_nimi('localhost', 'andmebaasi_nimi', 'kasutajanimi', 'parool');

Nagu näha, siis ei pea funktsioonidesse muutujaid igakord kaasa andma!
Et andmebaasi ühendus kätte saada, on sul vaja ainult:

$connect = $connection->get_connection();

See oli kõige lihtsam ja ka loodetavasti ka arusaadavam näide, mis ma tuua oskasin! 
Edasi võite ise uurida, kuidas saata andmebaasi käske ja kuidas andmeid kätte saada, aga kui vaja siis võin õpetada, loodan et minu postitus oli teile kasulik, lihtsalt polnud hetkel ajaga midagi paremat peale hakata !

 

Kui kellelgi on küsimusi PHP, mysql, Jquery, javascript, HTML5, CSS3 või Json kohta, siis võite julgelt ühendust võtta, aitan meelsasti.

Loodan, et te ei hakka seda vastust kritiseerima, vaid annate nõrgematele nõu edasi, nagu mina praegu tegin :)


MusicFace looja ja arendaja http://musicface.ee/

Jaga seda postitust


Postituse link
Share on other sites
1. html meta tag utf-8 näiteks, see näitab lehel täpitähti

siinkohal peaks kindlasti toonitama, et ka fail ise tuleb utf-8 kodeeringus salvestada, terve net on kisa täis, miks utf-8 ei toimi ja viga on enamsti vales salvestus kodeeringus.

Jaga seda postitust


Postituse link
Share on other sites
Külaline misterx

1. html meta tag utf-8 näiteks, see näitab lehel täpitähti

 

Praegu vaatasin, minu Firefox kasutab kooditabelit ISO-8859-1 ja Chrome kooditabelit Windows-1257, mõlemas on täpitähed olemas ja sama koha peal, seega iseenesest võib vabalt kasutada ka kumbatki neist. UTF-8 muutub vajalikuks siis, kui lehel on sümboleid, mis ühte kooditabelisse ei mahu. Vahet ei ole, mis kooditabelit sa kasutad, vajalikud konvertimised tuleb ära teha sellegipoolest, vastasel juhul tulevadki kahtlased sümbolid.

 

2. jquery AJAX, näide:

 

Soovitan otsida kusagilt, kuidas saada andmebaasist ainult uuemad andmed, praegu sa tood lehele iga kord terve andmebaasis oleva chati, väike nõuanne: Korja terve chat array-sse, kui index lehele tood, siis salvesta nt sessiooni ära viimase saadetud chati id, mis tal andmebaasis on, peale seda iga kord ajax kontrollib, kas andmebaasis on uusi kirjeid, mille ID on suurem, kui see, mis viimati lehele toodi. Kui on, siis kasuta jquery append käsku, see lisab uue sõnumi vanade sekka, ilma et ta tervet chat box-i koguaeg uuendaks :)

 

ise soovitaksin kasutada HTML5 SSE-d, server saadab kasutajale ise andmeid kasutades Json-i (pmst javascript).

Lihtne näide: http://www.w3schools.com/html/html5_serversentevents.asp

Põhjalik näide : http://www.html5rocks.com/en/tutorials/eventsource/basics/

Viimase sõnumi ID hoidmine sessioonis tundub kuidagi ebaotstarbekas, vabalt võib seda hoia Javascripti muutujas. Ma ei ole SSE-d ise kasutanud, ja ei oska öelda, kas ta ühenduse katkemisel taustal taasühendada proovib, kuid Apache serveril on selline asi nagu max_execution_time. Kui see on väga lühike, lõpetab PHP skript, mis sõnumeid saadab, natukese aja pärast jooksmise ja ühendus katkeb. Kui asi nii keeruliseks ajada, siis tundub mõistlikum kasutada WebSocket API-d.

 

3. OOP PHP // (PDO, või new mysqli())

PHP poole pealt soovitan tutvuda Objekt Orienteeritud PHP-ga, sul on endal vähem tööd programmeerides, ta on küll mitu korda raskem kui tavaline PHP, aga tänapäeval ei kirjutata enam kusagil tavalist :)

Andmebaasiga ühendamisel ära kunagi kasuta mysql_connect käsku, see on väga ebaturvaline, kasuta kas PDO või new mysqli()

 

Ma ei ole kuskilt lugenud et mysql_connect just ebaturvaline oleks, aga kui PHP dokumentatsioon lahti võtta, siis on näha, et see on alates PHP 5.5.0 deprecated ja kaob mõne aja pärast üldse ära.

 

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

 

Jaga seda postitust


Postituse link
Share on other sites

utf-8 mõttekus tekib enamasti kui on interaktiivne leht ja sa ei tea, mis tähti kasutajad üritavad sisestada. Aga kuna utf-8 on universaalne, siis pole eriti mõtet teisi üldse pähe taguda vist, ise olin ka siin paar aastat tagasi kange Windows-1257 fänn aga lõpetasin selle jama peale seda, kui oli vaja hakata kasutama sisestusväljasid ja andmebaasi.

Või võtta näide, sul tehtud mingi leht Windows-1257 peale, järsku tuleb kliendile plaan, et tal vaja ka venekeelset lehte.

Muudetud liikme toru-loru'i poolt

Jaga seda postitust


Postituse link
Share on other sites
Külaline misterx
utf-8 mõttekus tekib enamasti kui on interaktiivne leht ja sa ei tea, mis tähti kasutajad üritavad sisestada. Aga kuna utf-8 on universaalne, siis pole eriti mõtet teisi üldse pähe taguda vist, ise olin ka siin paar aastat tagasi kange Windows-1257 fänn aga lõpetasin selle jama peale seda, kui oli vaja hakata kasutama sisestusväljasid ja andmebaasi.

Või võtta näide, sul tehtud mingi leht Windows-1257 peale, järsku tuleb kliendile plaan, et tal vaja ka venekeelset lehte.

Tavaliselt on UTF-8 tõesti targem valik, kuid kui on vaja teha operatsioone üksikute tähtedega, siis kooditabelid, mis annavad igale sümbolile kindla arvu mälu, on kergemad kasutada.

Jaga seda postitust


Postituse link
Share on other sites

Kommentaari lisamiseks loo konto või logi sisse

Kommenteerimiseks peate olema liige

Loo konto

Liituge meie kommuuni uue kontoga. See on lihtne!

Loo uus konto

Logi sisse

On juba konto? Logi sisse siit.

Logi sisse nüüd

×
×
  • Loo uus...

Oluline informatsioon

Selle veebisaidi paremaks muutmiseks oleme teie seadmesse paigutanud küpsised . Võite kohandada oma küpsiste seadeid , vastasel juhul eeldame, et te olete küpsiste kasutamisega nõus kui jätkate veebisaidil sirvimist.. Palun lugege läbi Kasutustingimused ja Privaatsuspoliitika.