Dobrý den. Uvažujme následující kód:
<?
echo "<form action=\"index.php\" method=\"get\"><input type=\"text\" name=\"jmeno\"><input
type=\"submit\" name=\"odeslat\" value=\"Odeslat jméno\"></form>";
if($jmeno=="" || $odeslat==1)
{echo "Zadej svoje jméno.";}
else{echo "Vaše jméno je ".$jmeno.".";}
?>
Dělá mi to to, že když do formuláře nic nezadám a kliknu na "Odeslat jméno" vypíše se: "Zadejte svoje jméno". Když zadám do formuláře jméno, tak se vypíše "Vaše jméno je $jmeno". Tedy je všechno v pořádku.
Přijde mi to trochu divné, protože if($jmeno=="" || $odeslat==1) - logičtější by mi tam přišlo && (a zároveň), ale když tam dám && a nezadám do formuláře nic, tak se vypíše: "Vaše jméno je ."(samozřejmě jen ta tečka, protože jsem nic nezadal), když do něj naopak něco zadám, tak se vypíše už všechno správně: "Vaše jméno je $jmeno."
Mají tyto operátory || a && v PHP snad jiný význam než v C? Proč to teda jde "jakoby obráceně"?
Mimochodem i vy zde máte kód:
# if($GLOBALS["poslano"]==1)://pokud byl formular odeslan
if($GLOBALS["jmeno"]!=""):// a pokud bylo vyplneno jmeno
echo "Vase zadane jmeno je ".$GLOBALS["jmeno"];//tak ho zobrazime
else:
echo "Nevyplnil jste jmeno";//pokud jmeno nebylo vyplneno, upozornime na tuto skutecnost
endif;
endif;
což je vlastně trochu jiný zápis toho mého(teda alespoň myslím - dokonce jsem si to už i zkopíroval a dělalo to co mě, tedy to co nechci). Taky vám to nefunguje, respektive funguje tak, že se pořád vypisuje: "Vaše jméno je $jmeno" (když nic nezadám, tak samozřejmě nic, ale nikdy vlastně nedojde na kód pod else).
Děkuju za odpovědi.