Autor Zpráva
Arutha84
Profil *
Zdravím všechny,

dnes jsem narazil na problém s tímto skriptem:

$dotaz="UPDATE fotky SET komentar='$_POST['koment']' WHERE ID=".$_POST['ID'];
$navrat=mysql_query($dotaz) or die(mysql_error());
echo $dotaz."<br />\n";


Uživatel ve stránce okomentuje fotku, komentář i s ID fotky se pomocí metody POST přenese do stránky s tímto skriptem. Komentář se v MySQL databázi změní na nově zadaný. Takhle to má fungovat a také to tak funguje v IE a v Opeře.

Otevřu si stejnou stránku ve Firefoxu a ouha! Komentář se přenese pomocí metody POST do další stránky správně. Správně se vytvoří i $dotaz pro mysql_query (proto tam mám to echo, abych to ověřil), dokonce se mi i podaří ty komentáře v dalších příkazech na stejné stránce z tabulky vypsat. Po načtení celé stránky, ale komentáře v databázi nejsou. Zajímavé, že v PhpMyAdmin fungují tyto dotazy i ve firefoxu.

Už jsem zkoušel všechno možné, dokonce jsem hledal v nejrůznějších diskuzích a světe div se, dokonce jsem v jedné diskuzi objevil, že již někdo měl stejný problém, bohužel tam zůstal bez odpovědi. Jedná se pro mě o naprostou záhadu, protože doteď jsem se domníval, že PHP běží na straně serveru (v mém případě ic.cz) a tím pádem nemůže mít použitý prohlížeč žádný vliv. Tady ale jednoznčně má :-(.

Předem všem díky za konstruktivní připomínky a nápady.
Arutha84
Profil *
Teď jsem přišel na zajímavou věc. Když udělám někde v kódu chybu a vykonávání skriptu se přeruší před tím, než dojde na mysql_close, tak se komentáře do databáze uloží a zůstanou tam. Tak teď už jsem z toho vážně...
Arutha84
Profil *
Tak ještě jinak, když zakomentuji příkaz mysql_close() a načtení stránky proběhne dokonce, tak se mi komentáře z databáze někam vypaří (podotýkám, že pouze ve Firefoxu), pokud dojde někde na stránce k chybě a provádění PHP skriptu se nedokončí, tak se komentáře v databázi objeví správně stejně jako v IE nebo Opeře.

Už nad tím laboruji od včerejšího večera dohromady asi 6 hodin a stále z toho nejsem moudrý, je to poprvé co se mi něco takového stalo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0