Autor Zpráva
marosh
Profil *
Nazdar.

Urobil som si jednoduchý formulár na stránku:

<form action="form-1.php" method="post">
Jméno: <input type="text" name="jmeno">
věk: <input type="text" name="vek">
<input type="submit" value="odeslat">
</form>
<?
$jmeno = $_POST['jmeno'];
$vek = $_POST['vek'];
?>
<p><? echo "$jmeno"; ?> je pěkné jméno i když je ti <? echo "$vek"; ?> let...</p>


Po načítaní sa mi objaví táto hláška:

Notice: Undefined index: jmeno in c:program fileseasyphp1-7wwwform-2.php on line 16

Notice: Undefined index: vek in c:program fileseasyphp1-7wwwform-2.php on line 17


Čo som urobil zle?
Peca
Profil
Neověřil jsi, jestli existuje proměnná $_POST['jmeno'] a $_POST['vek'].
marosh
Profil *
A ako a kam mám zadať tú premennú?

Sorry za blbé otázky, ale som len začiatočník... :(
krteczek
Profil
1. na začátku skriptu si nastav proměnné které ve skriptu používáš:
$jmeno = '';
$vek = '';
$chyba = false;
2. <input type="submit" value="odeslat"> doplň o name="jaký_chceš_nazev_inputu"
3. kontrola:
- nejprve testuješ zda byl odeslán formulář: if(!empty($_POST['obsah_name_u_inputu_submit']))
- potom testuješ ostatní proměnné z formuláře třeba následujícím způsobem:

if((!empty($_POST['jmeno'])) && (trim($_POST['jmeno']) != ''))
{
$jmeno = htmlspecialchars($jmeno);
}
else
{
echo '<p>Nevyplnili jste jméno';
$chyba = true;
}

4. Místo vypsání chybové hlášky ji můžeš uložit do proměnné a vypsat ji až ve chvíli kdy to budeš opravdu potřebovat vypsat (například ji tak budeš moct vypsat u inputu kterého se to týká)
5. $chyba nám slouží pro jednodužší kontrolu toho jestli došlo během zpracovávání formuláře k chybě ($chyba = true) nebo ne (je false). je to jednodužší než kontrolovat všechny proměnné znovu před výpisem/uložením.
[pre]
if($chyba === false)
{
//ted máš vše v pořádku, můžeš vypisovat, ukládat, ..., proměnné
}
krteczek
Profil
smazáno, nedopatřením odesláno 2x
Toto téma je uzamčeno. Odpověď nelze zaslat.

0