Zadávání jména a vypisování – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zadávání jména a vypisování – PHP – Fórum – Programujte.comZadávání jména a vypisování – PHP – Fórum – Programujte.com

 

paul270
Návštěvník
9. 4. 2008   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 88.103.71.–
survik1
~ Moderátor
0
Posthunter
9. 4. 2008   #2
-
0
-

To paul27 :
a) Kdes ten kód našel?
b) 1 = true, 0 = false
c) operátory jsou nejspíše stejně. || == OR ; && == AND

Nahlásit jako SPAM
IP: 89.102.163.–
Život je jen hra, která se nedá vyhrát.
paul270
Návštěvník
9. 4. 2008   #3
-
0
-

Je to tady: http://programujte.com/index.php?akce=clanek&cl=2005052302-php-%96-3-lekce

b) Ano to vím. Myslel jsem, že true čili 1 jako když kliknu na odeslat a false čili 0, když nic neodešlu (nekliknu na submit).

Jsem z toho taky překvapenej, protože s tím "nebo" (||) to kupodivu funguje tak jak má. :smile19:

Nahlásit jako SPAM
IP: 88.103.71.–
9. 4. 2008   #4
-
0
-

Mam takovy pocit, ze || a OR se lisi prioritou. Nevim ale, jestlis i to s necim nepletu. Jinak...lepsi je vzdycky psat ||

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
paul270
Návštěvník
10. 4. 2008   #5
-
0
-

To CommanderZ : Taky to nevím na 100%, ale podle mého názoru se pleteš, v Cčku s tím pracuju, jako kdyby to bylo OR a funguje. Jedině, že PHP to má jinak :smile13:

Jinak nikdo nic? Nepřijde vám to divný, že to takhle funguje?

Nahlásit jako SPAM
IP: 88.103.71.–
10. 4. 2008   #6
-
0
-

PHP != C, naprosto nevidim duvod, proc by to tohle melo popirat ;)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Gobik0
Návštěvník
10. 4. 2008   #7
-
0
-



if($jmeno=="" || $odeslat==0)


a silně doporučuji naučit se pracovat s registerglobals off a místo zápisu $jmeno == "" používat empty( $jmeno ).
Taky výpis toho formuláře, když už bych to řešil v php, tak skombinuj uvozovky a apostrofy. Zbavíš se těch hnusných zpětných lomítek :-)


echo "<form action='index.php' method='get'><input type='text' name='jmeno'><input
type='submit' name='odeslat' value='Odeslat jméno'></form>";

Nahlásit jako SPAM
IP: 88.81.84.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 75 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý