kostenloser Webspace werbefrei: lima-city


Isset Befehl richtig einfügen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    schinkenmedia

    Kostenloser Webspace von schinkenmedia

    schinkenmedia hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Laut php.net liefert isset einen Boolean als Rückgabewert, eine abfrage ala =="" ist also relativ daneben. Richtig wäre
    if(isser($name))
    bzw
    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
  4. Autor dieses Themas

    schinkenmedia

    Kostenloser Webspace von schinkenmedia

    schinkenmedia hat kostenlosen Webspace.

    syberpsace schrieb:
    Laut php.net liefert isset einen Boolean als Rückgabewert, eine abfrage ala =="" ist also relativ daneben. Richtig wäre
    if(isser($name))
    bzw
    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 :smile:

    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
  5. 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
  6. Autor dieses Themas

    schinkenmedia

    Kostenloser Webspace von schinkenmedia

    schinkenmedia hat kostenlosen Webspace.

    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! :smile:
  7. anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    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 ;-)
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!