Autor | Zpráva | ||
---|---|---|---|
jefitto44 Profil |
#1 · Zasláno: 9. 1. 2014, 21:38:31
Mám minikalkulačku, ktorá vie iba deliť. Podmienkou chcem ošetriť delenie nulou. Kód je taký:
<form method="get"> <!-- delenie --> <input type="number" name="delenec"> <input type="number" name="delitel"> <input type="submit" value="Podiel"> </form> <?php if ($delitel != 0): $vysledok4=($delenec/$delitel); echo ("Podiel čísel je $vysledok4"); else: echo ("Nulou sa deliť nedá"); endif; ?> Problém je ten, že tú podmienku "Nulou sa deliť nedá" mi tam vypisuje furt, aj keď som ešte žiadne číslo do formulára nenapísal |
||
johnl Profil |
jefitto44:
Za 1. nejdříve musíš ověřit, zda již došlo k odeslání formuláře a za 2. používat register_globals může být někdy vážnou bezpečnostní chybou, nikdo by Ti asi jeho používání v dnešní době nepochválil, zkus spíše používat $_POST .
Takto by měl nějak vypadat tvůj kód: <form method="get"> změn na method="POST" (nebo místo $_POST použij $_GET) <input type="submit" value="Podiel">přepiš na: <input type="submit" name="podiel" value="Podiel"> <?php if(isset($_POST["podiel"])){ # ověříš, zda bylo odesláno submit tlačítlo if($_POST["delitel"] != 0) { $vysledek = $_POST["delenec"] / $_POST["delitel"]; echo "Podíl je: " . $vysledek; }else{ echo "Nulou nelze dělit."; } } ?> |
||
jefitto44 Profil |
#3 · Zasláno: 9. 1. 2014, 21:52:30
Počkaj... s php som začal včera... bezpečnostné veci momentálne absolútne vôbec neriešim...
Tomu overeniu submit tlačitka vôbec nechápem... čo tam mám overovať? Veď predsa ak nestlačí tlačitko, tak sa skript nerozbehne a nič sa nestane... či zle tomu chápem? |
||
johnl Profil |
jefitto44:
Ano, chápeš to špatně. :) Když já si načtu tvoji stránku, tak se PHP kód hned provede a jelikož uživatel nezadal žádné hodnoty, obě to bude brát jako 0 (false) a vypíše se Ti, že nulou nelze dělit. Musíš tedy kód dát do podmínky if(isset($_POST["podiel"])){ ... } což zajistí, že kód se provede až v momentě, kdy bude odesláno ono tlačítko. :)
„bezpečnostné veci momentálne absolútne vôbec neriešim“ Je lepší se ihned učit věci správněji - byť třeba trochu složitěji, než se poté složitě odnaučovat zlozvyky v kódu. :) |
||
jefitto44 Profil |
#5 · Zasláno: 9. 1. 2014, 21:56:19
Ale čo ak tam chcem nechať <form method="get">? Schválne som to nerobil cez post...
|
||
johnl Profil |
#6 · Zasláno: 9. 1. 2014, 21:59:38
jefitto44:
V tom případě použiješ místo $_POST proměnnou $_GET. :) Tedy if(isset($_GET["podiel"])){ ... } . Kód se poté provede až v momentě, kdy uživatel stiskne tlačítko, formulář se odešle a v $_GET bude $_GET["podiel"] = "Podiel"; > to už je ale nepodstatné. :)
|
||
jefitto44 Profil |
#7 · Zasláno: 9. 1. 2014, 22:22:19
Už mi to fachčí, ďakujem pekne :)
|
||
Časová prodleva: 11 let
|
0