Poradíte někdo, proč mi tenhle skriptík na localhosti chodí perfektně správně a tady online mi ten článek vždycky přidá ? Principielně mi jde o to, aby byly zadány všechny povinné proměnné (titulek, email, datum ztráty/nálezu, popis a jestli je to ztráta nebo nález) a když nejsou, tak aby to uživatele vrátilo na stránku se zadávacím formulářem (insert_article.php) spolu se všema datama co zadal, aby je nemusel vyplňovat znova. No a tady mi to ignoruje chybící záznamy a vždy ho to přidá.
Prosím poraďte, je to přesně ten samej skript. Dík :)
<?php
if(($titulek=="") || ($email=="") || ($datum_zan=="") || ($popis=="") || ($zn=="")) {
header("location: insert_article.php?chyba=nevyplneno&titulek=".$titulek."&datum_zan=".$datum_zan."&zn=".$zn."&email=".$email."&telefon=".$telefon."&popis=".$popis."&komentar=".$komentar);
};
$link = mysql_pconnect("mysql.webzdarma.cz", "adams", "moje_heslo");
mysql_select_db("adams");
$datum_vlozeni = date("Y-m-d H:i:s");
$heslo = md5(mt_rand(100,200));
mysql_query("INSERT INTO articles(
zn,
kategorie,
misto,
titulek,
popis,
datum_zan,
datum_vlozeni,
email,
telefon,
komentar,
heslo) VALUES(
'$zn',
'$kategorie',
'$misto',
'$titulek',
'$popis',
'$datum_zan',
'$datum_vlozeni',
'$email',
'$telefon',
'$komentar',
'$heslo')") or die("Failed to insert article.");
header("location: index.php?action=article-added");
?>
Ahoj. Spíš bych řekl, že bude problém v předání těch proměnných, než v té kontrole. Zkus se podívat na register_globals. Stejně je bezpečnější předávat údaje v superglobálních proměnných...
Jako že data poslaná metodou get přijmeš jako $_GET['jmeno_promenne'] , metodou post jako $_POST['jmeno_promenne'], atd...
A proc to teda na localhostu funguje a tady ne ? :(
register_globals ? To je funkce, nebo nastaveni ?
Zatim jsem vzdy data poslana postem (tak to delam vzdy kdyz pouzivam formular) prijmul jak $jmeno_promenne a vse bylo v pohode...
Local host a WZ mohou být různě nakonfigurované.
register_globals je parametr, který se nastavuje v php.ini. Jeho nastavení si můžeš zkontrolovat funkcí phpinfo().
Zkus to obrátit a do podmínky dát pokud jsou všechny nenulové:
if ($prvni && $druha && $treti), tak to uloží a dá hlavičku s tím "article-added"
else dá tu druhou hlavičku.
Jinak register_globals je tady "On"
Krab: caw pocuj pozrel som si tvoju stranku neposlal by si mi alebo neurobil by si mi login aby mi siel lebo ja to skusam a nechce mi to ist caw
S register globals off jsem se dobre vyskolil. Pokud ladite skript doma na register globals off a pak to hodite na neco, kde je register globas on, muze se stat, ze to prestane fungovat. A je to z nasledujiciho duvodu:
Rekneme, ze mame promennou $uzivatel, ktera je napriklad polem, ktere vypada napriklad jako array("jmeno"=>"marek", "nick"=>"MzM", "heslo"=>"heslo");
Pak bude existovat session, ktera se jmenuje taky uzivatel.
Nadefinujete si pole $uzivatel, udelate session_open() a je zadelane na bezesne noci, protoze se vytvori $uzivatel z tech session a uz to neni pole a je to cele blbe...
Z toho vyplyva:
1. ladit na stejne nastavenem prostredi.
2. "co kdyby nahodou", tak radeji session nazvat treba ses_uzivatel.
Analogie si vytvorite sami.