Isset Befehl richtig einfügen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
absenden
angeben
aufruf
code
datum
eingabe
feld
hilfreiche antworten
http
konzentrieren
laut url
manual
posten
richtig code
textfeld
url
versucht code
wunderbar code
-
Guten Abend liebe Community,
ich möchte mit der isset-Funktion prüfen, ob eine Eingabe erfolgt ist oder nicht. Wenn keine erfolgt ist, soll er "Du musst schon einen Namen angeben..." ausgeben. Wenn es ausgefüllt wurde, soll er "Richtig!" ausgeben. Ich habe es jetzt wie folgt versucht:
<?php $name=$_GET['eingabefeld1']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <form action="deinevergehen.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form> <?php if (isset($name)=="") { echo 'Du musst schon einen Namen angeben...'; } else { echo 'Richtig!'; } ?>
Jetzt zeigt er an, dass ich einen Namen angeben soll, wenn ich die Seite aufrufe, wenn ich jedoch nichts eingebe und einfach auf "Daten absenden" klicke, bekomme ich trotzdem die Meldung "Richtig!".
Freue mich auf hilfreiche Antworten.
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Laut php.net liefert isset einen Boolean als Rückgabewert, eine abfrage ala =="" ist also relativ daneben. Richtig wäre
bzwif(isser($name))
.if(isset($name) == true)
Da du $name aber immer setzt, egal was in das Textfeld eingegeben wird, solltest du eher auf die entsprechende $_GET-Variable abprüfen.
if(isser($_GET['eingabefeld1']))
mfg -
syberpsace schrieb:
Laut php.net liefert isset einen Boolean als Rückgabewert, eine abfrage ala =="" ist also relativ daneben. Richtig wäre
bzwif(isser($name))
.if(isset($name) == true)
Da du $name aber immer setzt, egal was in das Textfeld eingegeben wird, solltest du eher auf die entsprechende $_GET-Variable abprüfen.
if(isser($_GET['eingabefeld1']))
mfg
Ah vielen dank
Der Code lautet jetzt so:
<?php $name=$_GET['eingabefeld1']; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <form action="deinevergehen.php" method="get"> <input type="text" name="eingabefeld1"> </input> <input type="submit"> </input> </form> <?php if(isset($_GET['eingabefeld1'])) { echo 'Richtig!'; } else { echo 'Du musst schon einen Namen angeben...'; } ?>
Er gibt allerdings immernoch "Richtig!" aus, wenn ich auf absenden klicke und das Feld leer lasse...
Beitrag zuletzt geändert: 7.12.2011 20:25:25 von schinkenmedia -
schinkenmedia schrieb:
Er gibt allerdings immernoch "Richtig!" aus, wenn ich auf absenden klicke und das Feld leer lasse...
edit: du musst natürlich auch noch abfragen, ob ein Wert übergeben wurde (empty)
edit2: oder einfach mit =="" (ich sollte mich echt mehr konzentrieren beim Posten :))
mfg
Beitrag zuletzt geändert: 7.12.2011 20:32:29 von syberpsace -
syberpsace schrieb:
schinkenmedia schrieb:
Er gibt allerdings immernoch "Richtig!" aus, wenn ich auf absenden klicke und das Feld leer lasse...
edit: du musst natürlich auch noch abfragen, ob ein Wert übergeben wurde (empty)
edit2: oder einfach mit =="" (ich sollte mich echt mehr konzentrieren beim Posten :))
mfg
Danke, mit empty funktioniert es wunderbar! -
if(isset($_GET['name']) && !empty($name)) { ... }
Desweiteren kann man prüfen, ob es sich auch wirklich um einen String (also Text) handelt:
if(isset($_GET['name']) && !empty($name) && is_string($name)) { ... }
Bei Zahlen entsprechend is_string durch is_numeric ersetzen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage