Autor Zpráva
jeromme
Profil
Ahoj, jsem zacatecnik a ucim se PHP a narazil jsem na takovy maly problem u overovani formularu ... mam jednoduchy skript:

if (isset($_POST['pohlavi'])) {
if ($_POST['pohlavi'] == "Muž") {
echo "<p><b>Dobrý den, pane!</b></p>";
} elseif ($_POST['pohlavi'] == "Žena") {
echo "Dobrý den, paní!";
}
} else {
$_POST['pohlavi'] == NULL;
echo "<p><b>Nezadali jste své pohlaví!</b></p>";
}

ma to jen jednoduse overit, zda jste zadali sve pohlavi, ale porad dokola mi to vypisuje, ze v radku "$_POST['pohlavi'] == NULL;" neni definovana promenna "pohlavi" ... muzete mi poradit, kde je chyba? budu moc vdecny, j.
Hugo
Profil
Podle me by to melo byt takto

if (isset($_POST['pohlavi'])) {
if ($_POST['pohlavi'] == "Muž") {
echo "<p><b>Dobrý den, pane!</b></p>";
} elseif ($_POST['pohlavi'] == "Žena") {
echo "Dobrý den, paní!";
}
} elseif ($_POST['pohlavi'] == NULL)
{
echo "<p><b>Nezadali jste své pohlaví!</b></p>";
}

A pokud ti to pise, ze neni definovany index 'pohlavi' tak zkontroluj velikost pismen a metodu posilani dat
WertriK
Profil *
Já bych to řešil takto:

$pohlavi = $_POST['pohlavi'];

if (isset($pohlavi)) {
if ($pohlavi == "Muž") {
echo "<p><b>Dobrý den, pane!</b></p>";
} elseif ($pohlavi == "Žena") {
echo "Dobrý den, paní!";
}
} else {
$pohlavi = NULL;
echo "<p><b>Nezadali jste své pohlaví!</b></p>";
}
Dero
Profil
 $_POST['pohlavi'] == NULL;


A co to má konkrétně dělat? Kontrolovat, jestli bylo pohlaví nezadáno (1) nebo přiřadit NULL hodnotu (2)?

V prvním případě chybí podmínka, v druhém přebývá rovnítko, resp. lepší je použít příkaz "unset"
Hugo
Profil
WertriK

Toto je nepouzitelne pokud mas register_globals=off
Dero
Profil
Hugo:

WertriK to má dobře, všimni si prvního řádku.
jeromme
Profil
Dero

je to ten první případ - má to zkontrolovat, zda ve formuláři bylo zadáno pohlaví ... já se teprve učím a momentálně procházím podmínky ...
... všem ostatním musím napsat jen jedno - i za použití vašeho skriptu z toho vyjde "undefined index pohlavi" ... ja se z toho picnu ... j.
jeromme
Profil
diky vsem, uz jsem to pochopil, je to s tim rovnatkem, ktere tam prebyva ... :-)
Dero
Profil
A co tohle? Koukni na ten příkaz do knihy.


switch ($_POST['pohlavi']) {

case "Muž": echo "<p><b>Dobrý den, pane!</b></p>";
break;

case "Žena": echo "Dobrý den, paní!";
break;

case default: echo "<p><b>Nezadali jste své pohlaví!</b></p>";

}
Hugo
Profil
Dero

Mas pravdu, sorry.
Toto téma je uzamčeno. Odpověď nelze zaslat.