Autor | Zpráva | ||
---|---|---|---|
kokolino Profil |
#1 · Zasláno: 24. 1. 2012, 12:08:11
Čaute mám problem s diakritikou pri zápise do DB
v index.php mám kodovanie nasledovné <meta http-equiv="Content-Type" content="text/html; windows-1250" /> <?php $spojeni = mysql_connect('localhost','root','' ) or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v inc/db.php'); mysql_select_db("laci", $spojeni) or die ('Spatne zadana databaze v inc/db.php'); mysql_query("SET NAMES windows-1250"); ?> ako je vidiet http://laci.hys.cz/index.php?id=1&hodnota=uvod ak pridáte odkaz do menu tak sa zobrazí správne, v DB je však zapísané v tvare spoloènos (skúška slova spoločnosť), v url sa mi to zobrazuje ako .....&hodnota=spolo%E8nos%9D tým pádom mi nefunguje ani jeden odkaz vedeli by ste mi s touto maličkosťou poradiť |
||
Alutom Profil |
Ahoj,
řekl bych, že vkládání diakritiky do url je celkem prasárna, ale jít by to mělo. Zkus to po přijetí projet funkcí urldecode http://php.net/manual/en/function.urldecode.php. Tím by se mělo převést zpět "spolo%E8nos%9D" na "spoločnosť". Ještě tam bude nějaký problém s ukládání těch tabulek do databáze, ale s tím Ti moc neporadím, snad někdo jiný. Jediné, co vím jistě, je to, že windows-1250 se podle MySQL jmenuje cp1250. |
||
kokolino Profil |
#3 · Zasláno: 24. 1. 2012, 13:09:57
Alutom:
řekl bych, že vkládání diakritiky do url je celkem prasárna, ale jít by to mělo. -ak by som odstránil diakritiku pri zápise do DB aby som url nemal s diakritikou neviem ako by som dostal dané slovo do pôvodného stavu, aby sa v menu objavilo to slovo správne, jediná vec čo ma napadla je, že si v db pridám jeden stĺpec naviac, kde budem daváť názov bez diakritiky a ten pôjde do url (neviem či tento spôsob nie rovnaký ako sa skrabať ľavou nohou za pravým uchom) |
||
Alutom Profil |
#4 · Zasláno: 24. 1. 2012, 15:03:37
kokolino:
„jediná vec čo ma napadla je, že si v db pridám jeden stĺpec naviac, kde budem daváť názov bez diakritiky a ten pôjde do url“ Ano, to je vhodné řešení. Ten název bez diakritiky se dá dokonce před uložením do databáze generovat automaticky nějakou takovouhle funkcí, aby se nemusel vytvářet ručně: <?php $hodnota = "Příliš žluťoučký kůň úpěl ďábelské ódy"; $bezDiakritiky = strtolower(strtr( $hodnota, // překládaný text " ÁÄČÇĎÉĚËÍĽŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíľňóöřšťúůüýž", // co se má nahrazovat "-aaccdeeeilnoorstuuuyzaaccdeeeilnoorstuuuyz" // tímto se to nahradí )); ?> Samozřejmě se nám možná nepovede ošetřit všechny znaky, ale pro tvoje účely by to mělo takhle nějak stačit. |
||
Časová prodleva: 13 let
|
0