problem s kodovanim

Programovacie jazyky, rady, poradňa...
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

problem s kodovanim

Príspevok od používateľa hazard16 »

zdravim, nedavno som sa dostal k jednemu problemu a ten je nasledovny: mam stranku page.php. v Nej generujem hlavicku prostrednictvom funkcie genHeader(), ktoru mam definovanu v subore functions.php. Tato funkcia obsahuje okrem ineho aj sposob kodovania znakov UTF8. Na spominanej stranke pouzivam tuto funkciu pre generovanie hlavicky a tiez niekolkych tlacitok. Na tlacitkach mi bezi diakritika v pohode ale na ostatnom obsahu stranky page.php sa vyskytuju chyby v pismenach s diakritikou. Neviem ako je mozne ze cast stranky sa vygeneruje dobre a cast stranky zle.
konkretene sa dobre generuju tlacitka Prihlásiť sa, Odhlásiť sa, Hľadaj a tiez text vo vyhladavacom textovom poli. Ostatny obsah stranky obsahuje v diakritike chybu.

tu su nejake zdrojaky, ale bez komentov:

cast suboru functions.php

Kód: Vybrať všetko

 function genHeader($message,$lognuty) {
	echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> \n";
	echo "<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\n";
	echo "<title>".$message."</title>";
	echo "<link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\"  />\n</head>";
	echo "<!--[if lte IE 6]><link rel=\"stylesheet\" href=\"ie.css\" type=\"text/css\" /><![endif]-->";
	echo "\n<body><div id=\"obsah\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"top\">\n
			
			<tr><td id=\"tabstart\" valign=\"top\"><a href=\"index.php\"><img src=\"obr/logo3.jpg\" class=\"noborder\"></a></td>
			
			<td id=\"headerbutton\"><a href=\"search.php\"><div id=\"tlacitko\">Hľadat</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>
							
			<td id=\"headerbutton\"><a href=\"page.php?show=1\"><div id=\"tlacitko\">Knihy</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>
			<td id=\"headerbutton\"><a href=\"page.php?show=2\"><div id=\"tlacitko\">Hudba</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>";
	if($lognuty==1) {		
	  echo "<td id=\"headerbutton\"><a href=\"status.php\"><div id=\"tlacitko\">Stav</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>
			<td id=\"headerbutton\"><a href=\"logout.php\"><div id=\"tlacitko\">Odhlásiť sa</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>";}
	else {
	  echo "<td id=\"headerbutton\"><a href=\"login.php\"><div id=\"tlacitko\">Prihlásiť sa</div></a></td>
			<td id=tlacitko-end><img src=\"obr/header_tab_end.gif\"></td>";}
	echo "</td></tr></table>
			
			
			<div id=\"searchbar\">
			<form action=\"\" method=\"get\">
			Hľadať:
				<input type=\"text\" name=\"vyraz\" value=\"Zadajte hľadaný reťazec\" size=\"30\">
				<select name=\"vyber\">
					<option value=\"knihy\">Knihy</option>
					<option value=\"hudba\">Hudba</option>
				</select>
				<input type=\"submit\" value=\"Hľadaj\">
			</form>
			</div>";
					
}
-tu nas zaujima jedine to kodovanie a to, ze na tlacitkach ktore su generovane sa diakritika zobrazuje spravne, ostatne veci mozme vynechat

tu je cely subor page.php

Kód: Vybrať všetko

<?php
session_start(); 

require 'functions.php';

if($show==1) {
	$riadok=0;
	genHeader('Knihy',checkUser());
	$polozka=mysql_query("SELECT * FROM book_shop");
	echo "\n<table width=\"100%\">\n<tr>\n";
	while($row=mysql_fetch_object($polozka)){
		$riadok++;
		if($riadok > 3){
			echo "</tr>\n<tr>";
			$riadok=1;
		}
		echo "\n<td id=\"tableitem\"><div id=\"itemcont\">Názov: <span class=\"tucne\">".$row->title."</span><br>";
		echo "\nAutor: <span class=\"tucne\">".$row->author."</span><br>";
		echo "\nInfo: ".substr($row->info,0,50)." <a href=\"detailpage?item=$row->item_no.php\">...detaily</a><br>";
		}
	echo "</tr>\n</table>\n";
	echo "<br>šctžýáíé";
	genFooter();
	};
	
	

?>
-funkcia genFooter() nas nezaujima

a toto vygeneruje skript v page.php

Kód: Vybrať všetko

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Knihy</title><link rel="stylesheet" href="style.css" type="text/css"  />
</head><!--[if lte IE 6]><link rel="stylesheet" href="ie.css" type="text/css" /><![endif]-->
<body><div id="obsah"><table width="100%" cellspacing="0" cellpadding="0" class="top">

			
			<tr><td id="tabstart" valign="top"><a href="index.php"><img src="obr/logo3.jpg" class="noborder"></a></td>
			
			<td id="headerbutton"><a href="search.php"><div id="tlacitko">Hľadat</div></a></td>
			<td id=tlacitko-end><img src="obr/header_tab_end.gif"></td>
							
			<td id="headerbutton"><a href="page.php?show=1"><div id="tlacitko">Knihy</div></a></td>

			<td id=tlacitko-end><img src="obr/header_tab_end.gif"></td>
			<td id="headerbutton"><a href="page.php?show=2"><div id="tlacitko">Hudba</div></a></td>
			<td id=tlacitko-end><img src="obr/header_tab_end.gif"></td><td id="headerbutton"><a href="login.php"><div id="tlacitko">Prihlásiť sa</div></a></td>
			<td id=tlacitko-end><img src="obr/header_tab_end.gif"></td></td></tr></table>
			
			
			<div id="searchbar">
			<form action="" method="get">
			Hľadať:
				<input type="text" name="vyraz" value="Zadajte hľadaný reťazec" size="30">

				<select name="vyber">
					<option value="knihy">Knihy</option>
					<option value="hudba">Hudba</option>
				</select>
				<input type="submit" value="Hľadaj">
			</form>
			</div>
<table width="100%">

<tr>

<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Rumcajs</span><br>
Autor: <span class="tucne">V�clav ?tvrtek </span><br>
Info: Kto by nepoznal Kremienka a Chochol�ika, dve post <a href="detailpage?item=1.php">...detaily</a><br>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Edward</span><br>
Autor: <span class="tucne">W. a Ch. Awdry</span><br>

Info: ?al�� zo s�rie pr�behov pre deti o ru�?och z ostro <a href="detailpage?item=2.php">...detaily</a><br>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Hlb�ie v Podzem�</span><br>
Autor: <span class="tucne">Gordon Roderick, Brian Williams</span><br>
Info:  	 Dobrodru�stvo Willa Burrowsa pokra?uje a na jeh <a href="detailpage?item=3.php">...detaily</a><br></tr>
<tr>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Rozpr�vky uja Klob�su</span><br>
Autor: <span class="tucne">J�lius Satinsk�</span><br>

Info:  	 Nov� roz��ren� vydanie pon�ka najmen��m ?itate? <a href="detailpage?item=4.php">...detaily</a><br>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Kniha pre spr�vne baby � Bu? hviezda v�dy a v�ade</span><br>
Autor: <span class="tucne">Sally Jeffrieov�</span><br>
Info: Vie�, ako spravi? dobr� dojem na toho, na kom ti z <a href="detailpage?item=5.php">...detaily</a><br>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Medovn�kov� dom?ek</span><br>
Autor: <span class="tucne"></span><br>

Info: Ka�d� strana p�vabn�ho leporela v�?�ieho form�tu v <a href="detailpage?item=6.php">...detaily</a><br></tr>
<tr>
<td id="tableitem"><div id="itemcont">N�zov: <span class="tucne">Z�hada oran�ovej masky</span><br>
Autor: <span class="tucne">Ursel Schefflerov�</span><br>
Info:  	 Kniha je pokra?ovan�m p�tav�ch a vtipn�ch krimi <a href="detailpage?item=7.php">...detaily</a><br></tr>
</table>
<br>�ct�����<div id="footer">&copy;2008</div></div></body></html>
ako je teda mozne ze nazvy tlacitok su s diakritikou spravne a vo vlastnom obsahu stranky sa vyskytuju chyby, kedze kodovanie znakov stranky he obsiahnute v hlavicke a je platne pre celu stranku???

ak by niekto povazoval za podstatne kodovanie v mysql tak je to tiez UTF8, ale pre skusku som tam hodil aj echo so znakmi s diakritikou (predposledny riadok v page.php)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

aj si ten všetky súbory uložil v utf8?
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

Príspevok od používateľa hazard16 »

audiotrack napísal:aj si ten všetky súbory uložil v utf8?
ako myslis ci som to ulozil v UTF8? vsetko som to robil v jednom editore. vsetko je ukladane rovnako.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

každý kvalitnejší editor ponúka možnosť ako chceš dokument uložiť. Ak ho uložíš pod iným kodovaním ako potom používaš, môžu vzniknúť (a zvyčajne aj vznikajú) takéto problémy. Aký editor používaš? Napr. v dreamviewer je to tuším cez ctrl+j (nie som si istý tou skratkou) a v časti encoding vyber to tvoje utf8
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

Príspevok od používateľa hazard16 »

audiotrack napísal:každý kvalitnejší editor ponúka možnosť ako chceš dokument uložiť. Ak ho uložíš pod iným kodovaním ako potom používaš, môžu vzniknúť (a zvyčajne aj vznikajú) takéto problémy. Aký editor používaš? Napr. v dreamviewer je to tuším cez ctrl+j (nie som si istý tou skratkou) a v časti encoding vyber to tvoje utf8
ano dakujem, pracujem v dreamweavri. z casti sa moj problem vyriesil, teda vseko co sa generuje uz sa zobrazuje spravne, az na casti ktore su citane z mysql. tie generuje stael s chybami, mas na to nejake napady? za tu prvu cast dakujem
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

nastav si v databaze tiez utf-8 a ak nepomoze tak za mysql_connect(); daj

mysql_query("SET CHARACTER SET utf8");

pripadne pred to neviem kde sa to presne davalo.
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

Príspevok od používateľa hazard16 »

caesar1987 napísal:nastav si v databaze tiez utf-8 a ak nepomoze tak za mysql_connect(); daj

mysql_query("SET CHARACTER SET utf8");

pripadne pred to neviem kde sa to presne davalo.
dakujem za radu, konecne to fici, vyriesene

//autoeditácia príspevku ( 26 Oct 2008, 9:36 )
tak teraz som narazil na problem s kodovanim pri ukladani do databazy. vsetky stranky su s kodovanim utf8, pri kazdom pripajani na databazu mam aj mysql_query("SET CHARACTER SET utf8"); ale ked ulozim nieco do databazy prostrednictvom formularu na stranke tak mi do databzy ulozi na miesta s pismenami s diakritikou iba same ??????. jednotlive atributy v databaze su tiez nastavene na utf8, vie mi niekto poradit co s tym?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

ak to pri vyťahovaní z db je normálne, tak sa nestaraj či sú tam otázniky alebo niečo iné. MOžno máš len admina v inom kodovani tak tam vidíš otázniky
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

Príspevok od používateľa hazard16 »

audiotrack napísal:ak to pri vyťahovaní z db je normálne, tak sa nestaraj či sú tam otázniky alebo niečo iné. MOžno máš len admina v inom kodovani tak tam vidíš otázniky
problem je nasledovny:

mam cast kodu:

Kód: Vybrať všetko

echo $nazov;
mysql_query("INSERT INTO kniha (nazov) VALUES ('$nazov')");
je to cast updatovacej funkcie. dajme tomu ze idem ulozit do db "ľ ľ ľ", echo mi vypise "ľ ľ ľ" ale do databazy sa mi ulozi "? ? ?", tym padom mam v db ulozene hluposti a hluposti mi potom aj zobrazuje na stranke kde citam udaje. ked tieto "ľ ľ ľ" prepisem v db rucne tak sa mi zobrazuju na stranke uz v pohode
rol_
Novice
Novice
Príspevky: 8
Registrovaný: 21 okt 2008, 19:55

Príspevok od používateľa rol_ »

Zotriedenie utf8 musí mať databáza aj jednotlivé tabuľky v nej, máš to tak? :idea:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

hazard16 napísal:...
A určite máš všetko v kódovaní utf-8 (aj tú stránku s formulárom)?
hazard16
Medium Expert
Medium Expert
Príspevky: 118
Registrovaný: 25 feb 2006, 8:57

Príspevok od používateľa hazard16 »

OK, tak skusil som snad vsetko, mal som nastavene kodovanie databzy na utf8, kodovanie atributov tabuliek na UTF8 ale stale nic. ak niekto pouziva phpmyadmin 5.0.51b tak ake kodovanie mam nastavit vytvorenej databaze atributom tabulky aby sa mi tam korektne zobrazovala slovencina a cestina? dakujem

//autoeditácia príspevku ( 26 Oct 2008, 22:41 )
hazard16 napísal:OK, tak skusil som snad vsetko, mal som nastavene kodovanie databzy na utf8, kodovanie atributov tabuliek na UTF8 ale stale nic. ak niekto pouziva phpmyadmin 5.0.51b tak ake kodovanie mam nastavit vytvorenej databaze atributom tabulky aby sa mi tam korektne zobrazovala slovencina a cestina? dakujem
takze nakoniec som to nastavil na "binary" a zda sa ze to uz fici :)
Napísať odpoveď