Jump to content
php.lv forumi

Ežu Sargs

Reģistrētie lietotāji
  • Posts

    3
  • Joined

  • Last visited

Ežu Sargs's Achievements

Newbie

Newbie (1/14)

  1. mod_rewrite trūkums - papildslodze (kaut arī laikam neliela) procesoram, ErrorDocument - tas, ka šis ir "netīrs haks" "caur d.", un piesārņo error logu ar fake kļūdām.. Bet ir viena ļoti laba un vienkārša metode, kā šo lietu paveikt bez mod_rewrite, un bez ErrorDocument. Parasti tutoriāļos tā nav aprakstīta, tur uzreiz, ja runā par nice/cool/user-friendly URLs, uzreiz ķeras pie mod_rewrite, kā vienīgā iespējamā varianta. Apmēram, tā kā bija 'govorim "Partija", dumaem - Ļeņin!' Karoče, lieta ir tāda. Priekšnosacījums mod_rewrite NEizmantošanai: pirmais folderis URLī ir reāli eksistējošs FAILS. Ļoti piemērots variants daudzvalodīgajos webos, kas ir raksturīgi .lv zonā. Tad weba sāknē uztaisām failus ar nosaukumiem lv, en, ru; .htaccess'ā vai (labāk) apača config'ā nodefinējam, lai šos failus šajā folderī (t.i. ar pilnu ceļu) parsē PHP. Uz *NIX'ā šie faili būs symlink'i uz index.php, uz WIN tie saturēs vienu rindiņu <?php require 'index.php'; ?> Un tālāk, iekš index.php (vai labāk, nosaukt viņu ~ zverudarzs2006.php, lai nekur neparādās URLī, noslēpjot PHP izmantošanas faktu), darām apmēram tā: # definējam valodu $lang = basename($_SERVER['SCRIPT_NAME']); if (!in_array($lang, $CFG['languages'])) $lang = $CFG['languages'][0]; # parsējam URLi masīvā if (@$_SERVER['PATH_INFO']) { $url_array = explode('/', strip_tags($_SERVER['PATH_INFO'])); array_shift($url_array); } else { $url_array = array(); } # tagad šo masīvu var izmantot savām vajadzībām //echo "<pre>"; print_r($url_array); echo "</pre>"; Šo metodi izmantoju, piemēram, šeit (linku piemēri): http://smarthouse.lv/lv/gaisma http://smarthouse.lv/lv/produkti/filosofija p.s. serveris.lv uz kura jams stāv, gan nežēlīgi bremzē, laikam, savākušies pārāk daudz klientu, un pārslogots..]
  2. Nezinu. Izlasīju izlasiju 10x to manuāli par charsetiem. visās iespējamās vietās my.ini failā saliku utf-8, bet nekas nepalīdzēja. Pēc tās SET NAMES UTF-8 komandas (mēģināju sekojošos variantos): @mysqli_query($db, 'SET NAMES `utf8`'); //@mysqli_options($db, MYSQLI_INIT_COMMAND, "SET NAMES `utf8`"); //@mysqli_options($db, MYSQLI_INIT_COMMAND, "SET CHARACTER SET `utf8`"); , outputs ir tāds, kad utf-8 apskatās, redaktorā uzstādot ASCII charsetu (dubultburti ar pirmo vācu A ar diviem punktiem virsū). Un šitais print mysqli_character_set_name($db); atgriež šo: latin1_swedish_ci , kas ir defaultais. Meklējot googlē, redzēju kādā listē tekstu, ka tā tas arī notiek (bugs, laikam), bet pātiesībā pārslēdzot. Folderī "charsets" mētājas latin1 un vēl daudz visādu, bet utf8 tur nav (uz winXP tas ir). Varbūt, tas ir iebūvēts kaut kur pašā .exe... Galu galā, palīdzēja datubāzes, visu tabulu un visu texta lauciņu pārdefinēšana kā "binary". (varchar kļūst varbinary, text => blob utt.). Bet, kā redzams, šis ir ne risinājums, bet ātrs lāpījums, tam tā nevajag būt. Jo, ja rastos vajadzība kaut ko kārtot pēc alfabēta, tie collations lieti noderētu. Un es gribēju izmantot utf8_general_ci - pēc nosaukuma spriežot, tas pareizi kārtos visās valodās...
  3. Piedzīvoju šo pašu problēmu. Izrādās, tam nav nekāda sakara ar phpMyAdmin. MySQL 4.1.9-nt uz Win XP. Ko darīt - nezinu. Laikam nāksies repleisot jau pēc SELECTa, un gaidīt nākamo mySQL versiju.... :( :unsure:
×
×
  • Create New...