Autor | Zpráva | ||
---|---|---|---|
danny98 Profil |
Ahoj všem mám problém, na fóru: Diskuse JPW: Názor na web- yourradio database
jsem se vás ptal na názor mého webu, teď je na adrese radiodb.tk (hosting mi smazal původní účet), ale teď k věci: ze začátku jsem měl problémy s hostingem a někdo mi napsal, že pokud zadá nesmyslný parametr (ID), tak se stejně objeví bílá strana (tehdy to byl problém hostingu). Teď by mě zajímalo, jak sestrojit podmínku, které by například při zadání radiodb.tk/details.php?id=999&lang=cz hodila uživatele na 404. Zkoušel jsem: if ($p['id']= NULL) { header('Location: http://radiodb.tk/404.php'); } Jinak mnohý věci se od tý doby s webem změnily :) OK přišel jsem na to, k podmínce if ($p = mysql_fetch_assoc($result)) { } else { header('Location: http://radiodb.tk/404.php'); } |
||
Kcko Profil |
#2 · Zasláno: 6. 11. 2015, 19:51:33
Je rozdíl mezi = a ==
|
||
JimmyCz Profil |
#3 · Zasláno: 6. 11. 2015, 23:00:49
zdravím, zde máš odpověd na tvojí otázku.
Jak píše Kcko je velký rozdíl mezi = a ==,ale to bys měl vědět. Toto používám já, pro zobrazení profilů: if (isset($_GET['id']) === true && id_exists($_GET['id']) === true) // zkontroluje, zda je zadané ID a zda je ID zaznamenané v DB{ OBSAH } else { header('Location: 404.php'); exit(); } function id_exists($id) { return (mysql_result(mysql_query("SELECT COUNT(`id`) FROM `uzivatele` WHERE `id` = '$id'"), 0) == 1) ? true : false; } Snad ti to pomůže :) |
||
juriad Profil |
danny98, JimmyCz:
Je špatné jen tak přesměrovat na jinou stránku. Jepší je poslat hlavičku 404 a vypsat chybu do stránky. Tak se uživatel alespoň dozví, v čem je problém, může si zkontrolovat URL, jestli se nepřepsal, a svůj omyl opravit. header("HTTP/1.1 404 Not Found"); echo 'Stránka s id=' . $_GET['id'] . ' neexistuje, zkontrolujete, že jste zadali adresu správně'; exit(); Samozřejmě, že můžeš klidně místo výpisu hlášky provést include chybové stránky: include "404.php" JimmyCz: Funkci id_exists nepotřebuje, tu situaci mu už řeší ten else, který přidal.
Tu část příspěvku začínající „OK ...“ doplnil po 12 minutách. Chápu to tak, že si svůj vlastní problém vyřešil. danny98: Ještě nejspíš potřebuješ podmínku hned na začátku pro kontrolu, zda jsi vůbec parametr id dostal. To, o co jsi se snažil tím nepodařeným porovnáním s NULL. A pak ještě správně sestavit dotaz do databáze (ošetření SQL Injection). Možná to máš a jen tě podceňuji. |
||
danny98 Profil |
#5 · Zasláno: 7. 11. 2015, 12:57:29
ok, ještě to upravím, děkuju vám
|
||
Časová prodleva: 8 let
|
0