Autor | Zpráva | ||
---|---|---|---|
Dukolm Profil * |
#1 · Zasláno: 16. 3. 2007, 11:50:00
Má problém s formulářem
kod 31 <form action="index.php" method="post"> 32 <input name="heslo" type="password"> 33 <input type="submit" value="ok"> 34 </form> 35 36 <? 37 $heslo = $_POST['heslo'] ; 38 if ($heslo == "login") echo "Tajný obsah... zobrazí se po vložení správného hesla"; 39 else echo "Normální obsah stránky objevý se bez zadání hesla:"; 40 ?> Chyba kterou mi to vepíše do prohlížeče Notice: Undefined index: heslo in c:inet_srvhttpdoc_rootcss zkouškaindex.php on line 37 |
||
nightfish Profil |
#2 · Zasláno: 16. 3. 2007, 11:52:05 · Upravil/a: nightfish
politováníhodné
a v čem je tvůj problém? na co se ptáš? nebo nám to jen oznamuješ? nebo tě zajímá, jak 100hoven? je to vcelku jednoduché před použitím prvku pole s nějakým indexem si nejdřív ověřiš, zda-li ten index existuje (poslouží třeba isset()) |
||
Hugo Profil |
#3 · Zasláno: 16. 3. 2007, 11:52:57
To je pouze upozornění, že používáš prvek pole, který není definován. Řešit to můžeš tak, že budeš před použit inicializovat všechny proměnné nebo můžeš nastavit zobrazování chyb, tak aby se NOTICE nezobrazovali:
Error_Reporting(E_ALL & ~E_NOTICE); |
||
Kcko Profil |
#4 · Zasláno: 16. 3. 2007, 12:42:18
31 <form action="index.php" method="post">
32 <input name="heslo" type="password"> 33 <input type="submit" value="ok"> 34 </form> 35 36
|
||
nightfish Profil |
#5 · Zasláno: 16. 3. 2007, 12:53:54
Kcko
tvůj kus kódu problém nevyřeší, protože pořád se v té podmínce může pracovat s neexistujícím indexem... ale kdyby v tom IFu bylo isset(), hned by to bylo lepší |
||
Kcko Profil |
#6 · Zasláno: 16. 3. 2007, 12:57:07 · Upravil/a: Kcko
nightfish
Pokud vim tak jeho chyba je nedefinovana promenna, protoze do ni uklada hodnotu z POST pole, ktere jeste nevzniklo. Cili pokud se POST naplni tak pote dojde k prirazeni k finalni promenne. Nevidim v tom zadny problem a venku je hezky ... :) |
||
nightfish Profil |
#7 · Zasláno: 16. 3. 2007, 13:04:20
Kcko
tak jinak...na řádku 37 se snaží přistupovat k položce pole $_POST, která má index "heslo" tato položka v určitých případech nemusí existovat (nebyl-li odeslán formulář) ve svém kódu (řádek s if ($_POST[...) taktéž přistupuješ k této položce pole, která nemusí existovat jak říkám, řešením je nahrazení toho IFu za if (isSet($_POST['heslo'])) ... jinak pěkný den opravdu je... už aby bylo jaro a teploty se pravidelně blížily 20 °C |
||
Dukolm Profil * |
#8 · Zasláno: 16. 3. 2007, 13:13:44
Tak poradtě kde mam co upravyt a jak tohle je Muj druhý script ale první s formulářem. Ta všechny věci ještě úplně nechápu
|
||
nightfish Profil |
#9 · Zasláno: 16. 3. 2007, 13:22:07
Dukolm
v tom případě doporučuji nejdříve trochu postudovat, vhodným materiálem je třeba seriál na linuxsoftu http://www.linuxsoft.cz/php/ můžeš rovnou přeskočit na část o formulářích, nicméně pokud neovládáš základy PHP, tak doporučuji jet od začátku |
||
Dukolm Profil * |
#10 · Zasláno: 16. 3. 2007, 13:26:18
nightfish
jo to už postupně čtu. Základy nějaký ovládám. |
||
krteczek Profil |
#11 · Zasláno: 16. 3. 2007, 21:01:11
Dukolm: Ještě vhodnější by místo isset() možná bylo: empty()
if(!empty($_POST['heslo'])) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0