Checkbox ellenőrzési hiba, de miért?
Sziasztok!
Elkezdtem írni egy regisztrációs űrlapot, és a végén van egy checkbox, amivel elfogadja a felhasználó a szabályzatot. Maga az ellenőrzés le is fut, azonban ha nem jelöli be az én hibaüzenetemen kívül kapok egy php hibaüzenetet is ( Notice: Undefined index: checkbox in C:\wamp\www\reg\reg.php on line 21).
A kódban a 21.sorban ez van: $checkbox=$_POST['checkbox'];
Az elenőrzésnél pedig ez:
if (!$checkbox) {
echo "A regisztrációhoz szükséges feltételeket el kell fogadni!";
$error=true;
}
Az input pedig ilyen:
<input type="checkbox" id="checkbox" name="checkbox" style="margin:0 10px 0 0;"><label for="checkbox">A <a href="#">szabályzatot</a> elolvastam elfogadom.</label>
Köszi a segítséget előre is!
csak a value értéket felejtetted el, amit tovább ad.
tedd be az input mezőbe a value="1" paramétert.
mármint, ha nincs bejelölve akkor meg jelenik.
fel vehetsz a form elejére egy hidden input mezőt azonos name paraméterrel, de 0 value értékkel.
<input type="hidden" name="checkbox" value="0" />
Így a POST paraméter definiálva lesz...
<?php
$hiba = "";
$checkbox = $_POST['checkbox'];
if (!$checkbox) {
$hiba = "A regisztrációhoz szükséges feltételeket el kell fogadni!";
$error=true;
} else {
$hiba = "okéééé";
}
?><form method="post" action="">
<input type="checkbox" id="checkbox" name="checkbox" value="1" style="margin:0 10px 0 0;" />
<button type="submit">Mehet</button>
</form>
<?php echo $hiba;?>
A checkbox speciális input elem. Ha nincs bejelölve, akkor nem is kerül be a $_POST tömbbe.
Ellenőrizni magát a $_POST tömböt érdemes, hogy egyáltalán létezik-e a keresett kulcs:
if (isset($_POST["checkbox"])) {
..bejelölve
} else {
..nincs bejelölve
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!