Undefinierter Index obwohl eigentlich vorhanden

  • Hallo zusammen,


    ich sitze gerade an http://www.youtube.com/watch?v=ejjuMdqncHo und versuche diesen Terminfinder nach zu bauen.


    Und soweit bin ich auch schon gekommen:
    Mein Formular:

    PHP
    <form action="terminauswertung.php" method="post">
    <p>Name:<br />
    <input type="text" size="20" name="teilnehmer" /></p>
    <p>Terminvorschl&auml;ge:<br />
    <input type="checkbox" name="termin1" value="X" /> &nbsp; Terminoption #1<br />
    <input type="checkbox" name="termin2" value="X" /> &nbsp; Terminoption #2<br />
    <input type="checkbox" name="termin3" value="X" /> &nbsp; Terminoption #3</p>
    <p><input type="submit" value="Und ab daf&uuml;r" name="absenden"/></p>
    </form>


    und meine Auswertung:


    Mein Problem ist jetzt folgendes:

    Zitat

    Notice: Undefined index: termin2 in Z:\PROGRAMME\xampp\htdocs\arbeitsbereich\terminauswertung.php on line 4


    Ludwig kann an folgenden Tagen:
    Termin #1: X
    Termin #2: -
    Termin #3: X

    Heißt: Er meckert zwar dass ich die Variable "$termin2" nicht gesetzt habe, führt aber die Anweisung richtig aus. Kann mir einer nen tipp geben, wieso ich diese Notice erhalte obwohl der angemeckerte index sehr wohl definiert ist?


    Danke!
    Silver

  • Nur zum besseren Verständnis:


    PHP meckert nicht weil $termin2 nicht definiert ist, sondern weil $_POST['termin2'] leer ist, was der Fall ist wenn in deinem Formular der entsprechende Punkt einfach nicht angeklickt wurde.


    Dann prüfst du ob:

    PHP
    $termin2 <> "X"


    Und nichts ist eben nicht X, von daher wird $termin2 einfach mit - besetzt.

  • "

    Zitat

    Heißt: Er meckert zwar dass ich die Variable "$termin2" nicht gesetzt habe, führt aber die Anweisung richtig aus. Kann mir einer nen tipp geben, wieso ich diese Notice erhalte obwohl der angemeckerte index sehr wohl definiert ist?

    "


    falsch -> es geht um den index und nicht um die variable - unterschied


    du sagst deinem script es soll $_POST['termin2'] der var $termin2 zuweisen -> wenn $_POST['termin2'] nun leer ist ... dann fragst du weiter unten ob $termin2 ungleich 'x' ist ... und da haben wir es
    du auch? ;)



    gruß peter

  • Danke Basiii ;)


    mir kommt da gerade noch eine Alternative in den Kopf:
    wenn ich an statt

    PHP
    if ( $termin2 <> "X")
    {
        $termin2 = "-";
    }


    einfach die Abfrage umstelle mittels


    PHP
    if ($termin2 == "")
    {
    $termin2 = "-"; 
    }


    sollte diese Notice doch verschwinden, oder? Oder verstehe ich das gerade falsch? Ich prüfe doch damit ab, ob die Variable leer ist und sollte so zumindest schon mal eine Antwort bekommen, oder?

  • nein - nur wenn der browser den index sendet ist er da.
    du musst fragen ob die var gesetzt ist
    zB:

    PHP
    function gesetzt($index){
        return (isset($_POST[$index]))?$_POST[$index]:false;
    }


    und dann:

    PHP
    $termin2 = gesetzt('termin2');

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!