Autor | Zpráva | ||
---|---|---|---|
W4C Profil * |
#1 · Zasláno: 1. 7. 2010, 21:53:46
Hola,
Mám na začátku stránky "rádoby" funkční validátor IP/URL.-ten neřeším, protože šlape /zdá se/dobře Po otestování zadané IP/URL ve validátoru se na základě odpovídajícího return kódu provede další operace Return kódy 0 a 5 znamenají chyby v rozsahu/formátu/platnosti zadané IP/URL Jedná se mi o to, že chci, pokud se vrátí tyto dva return kódy 0 a 5 a pokud $adh není vůbec zadaná , aby se celý následující obsah stránky s výsledky vynechal (neprovedl ani nezobrazil) Validátor: check_ip_address($adh){ ... ... } Zápis: $adh="12" //zadána chybná IP - vyvolá to kód 5 $CHK1=(check_ip_address($adh)); //tady adresa projde validátorem a dosadí se return kód do .$CHK1 ($adh je zadaná IP/URL) ECHO "CHK1:".$CHK1; //kontrola jestli return kód je vpořádku - je (kód je 5) if((!Empty($adh) || ($CHK1 != "0") || ($CHK1 != "5")){ //a tady je problém, "obsah celé stránky" se provádí, ikdyž nemá obsah celé stránky } else echo "ZADEJTE ADRESU"; Pokud ale zapíšu: if(!Empty($adh)) { obsah celé stránky } else echo "ZADEJTE ADRESU"; $adh v tomto případě byla odeslána prázdná a následující obsah se správně podle podmínky nenačet(zde return kód není). Takže problém bude někde v ....|| $CHK1 != "0" || $CHK1 != 5") Kde je chyba? |
||
janbarasek Profil |
#2 · Zasláno: 1. 7. 2010, 21:57:04
W4C: Tady: http://php.baraja.cz/if.php je několik ukázek, jak na to. nejčastější chyby, a jak vůbec podmínku vytvořit.
|
||
shaggy Profil |
#3 · Zasláno: 1. 7. 2010, 22:14:00 · Upravil/a: shaggy
janbarasek:
Namiesto spamovania a neustáleho odkazovania na svoj web, by si mohol radšej poradiť. Ak nevieš, poradiť, tak nepíš. Ty očividne nevieš poradiť, zvyšok si domysli sám. W4C: Môj laický a amatérsky názor je ten, že chyba je v tomto riadku: if((!Empty($adh) || ($CHK1 != "0") || ($CHK1 != "5")){ mám pocit, že tam máš o jednu uzatváraciu zátvorku menej (celkovo tvoje používanie zátvoriek je povedzme "neštandardné"). Ale čudujem sa, že ti nevyhodí chybu a prebehne to. |
||
fajzen Profil |
#4 · Zasláno: 1. 7. 2010, 22:34:35 · Upravil/a: fajzen
W4C:
no, je to problém logiky... Keď prevedieš tú podmienku do ľudskej reči, dostaneš: Ak $adh nie je prázdne ALEBO $CHK1 nie je nula ALEBO $CHK1 nie je päť, vykonaj... Vidíš ten problém? ALEBO $CHK1 nie je nula ALEBO nie je 5... Jedno z toho musí zákonite platiť vždy... Daj v podmienke namiesto alebo (||) a zároveň (&&) a bude to správne (teda až na tú jednu chýbajúcu zátvorku, ako písal shaggy) |
||
imploder Profil |
#5 · Zasláno: 1. 7. 2010, 23:03:48 · Upravil/a: imploder
if((!Empty($adh) || ($CHK1 != "0") || ($CHK1 != "5")){ 5 otevíracích závorek, 4 uzavírací - nesedí to, mělo by to havarovat na syntaktické chybě. Možná oprava: if((!Empty($adh)) || ($CHK1 != "0") || ($CHK1 != "5")){ |
||
W4C Profil * |
#6 · Zasláno: 1. 7. 2010, 23:47:00
fajzen:
Díky,máš pravdu -&& to jistí. Sice jsem to tam původně měl,ale bohužel nevhodně zapsaný s ( !== ) , což nemohlo fungovat, protože hodnoty na obou stranách jsou jiného typu. původně, před rozvrtáním: if(!Empty($adh) && $CHK1 !== "0" && $CHK1 !== "5") { teď(funkční): if(!Empty($adh) && $CHK1 != "0" && $CHK1 != "5") { Sry, ta závorka chybí jen tady v postu, zkoušel jsem a zapomněl jsem ji zde dopsat. |
||
Časová prodleva: 14 let
|
0