Autor Zpráva
Dukolm
Profil *
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
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
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
31 <form action="index.php" method="post">
32 <input name="heslo" type="password">
33 <input type="submit" value="ok">
34 </form>
35
36


<?php

if ($_POST["heslo"] != "")
{
$heslo = $_POST['heslo'] ;
if ($heslo == "login") echo "Tajný obsah... zobrazí se po vložení správného hesla";
else echo "Normální obsah stránky objevý se bez zadání hesla:";
}
?>

nightfish
Profil
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
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
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 *
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
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 *
nightfish
jo to už postupně čtu. Základy nějaký ovládám.
krteczek
Profil
Dukolm: Ještě vhodnější by místo isset() možná bylo: empty()
if(!empty($_POST['heslo']))
Toto téma je uzamčeno. Odpověď nelze zaslat.