PHP-HILFE

  • wer kann mir bitte helfen???
    was mache ich hier falsch???
    es wird mir die fehlermeldung undefided index angezeigt
    das ist mein formular.php:


    <?php
    echo "<li>Name: " . $_GET['vorname'];
    echo "<li>Anrede: ". $_GET['anrede'];
    echo "<li>Anliegen: ". $_GET['anliegen'];

    if ($_GET['abgesendet']=="Ja")
    {

    if ($_GET['vorname'] =="")
    {
    echo"<p>Bitte Vornamen eintragen!!!</p>";
    }
    if ($_GET['gender'] =="")
    {
    echo"<p>Bitte Anrede eintragen!!!</p>";
    }
    if ($_GET['anligen'] =="")
    {
    echo"<p>Bitte Anliegen eintragen!!!</p>";
    }
    }

    if ( $_GET['vorname']== "" ||
    $_GET['anrede']=="" ||
    $_GET['anliegen']=="")
    {
    ?>
    <hr/>
    <form method="get" action= "formular.php" >


    <p>Anrede:<br/>
    <input type="radio"
    name="anrede"
    value="w"
    <?php
    if ($_GET['anrede'] == "w")

    {
    echo 'checked="checked" ';
    }
    ?>
    />Frau <br/>


    <input type="radio"
    name="anrede"
    value="m"
    <?php
    if ($_GET['anrede'] =="m")

    {
    echo 'checked="checked" ';
    }
    ?>

    />Herr
    </p>


    <p>Name:<br/>
    <input type="text" value="<?php echo $_GET['vorname'] ; ? >"
    name="vorname" size="20" maxlength="50" /> </p>



    <p>Anliegen: <br/>
    <textarea name="anliegen" rows="8" cols="40">
    <?php echo $_GET ['anliegen'];
    ?> </textarea>
    </p>

    <input type="hidden" name="abgesendet" value="Ja" />

    <input type="submit" value="Eingaben senden "/>


    </form>


    <?php
    }
    else
    {

    echo" <br/>";
    echo" Auswertung" ;
    }
    ?>

  • Der "Fehler" ist der, daß Du Variablen verwendest die nicht initialisiert bzw. gesetzt sind. Es ist guter Programmierstil Variablen vor der Verwendung zu initialisieren bzw. zu überprüfen ob sie gesetzt sind. z.B. so


    PHP
    <span class="syntaxdefault"><br />if </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'vorname'</span><span class="syntaxkeyword">]))<br />{<br /></span><span class="syntaxdefault">  </span><span class="syntaxcomment">// mach irgendetwas mit $_GET['vorname']<br /></span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span>
  • machs mal so:


    Wenn du Code hast dann mach doch bitte

    Code

    sons dauerts länger den zu markieren.

  • Um diese ganzen Fehlermeldungen (eigentlich ja nur Notizen) zu vermeiden gibt es zwei Möglichkeiten:
    1. isset() [meiner Meinung nach besser]

    PHP
    <?php
    if(isset($_POST["submit"]))
    {
    //Auswertung ausgeben
    }
    else
    {
    //Formular ausgeben
    }
    ?>


    Achtung: Du musst bei dieser Möglichkeit dem Submitbutton das Attribut name="submit" geben.



    2. error_reporting(0) [eigentlich schlecht]
    Hierbei lässt du die Fehlermeldungen einfach ausblenden. Eigentlich einer Variante der "dümmeren" Art.

    PHP
    <?php
    error_reporting(0);
    //Auswertung
    ?>
    
    
    
    
    //Formular


    Alles verstanden?

  • wenn ich das so reinschreibe, dann deaktiviere ich damit im radio button mein php für checked
    wo soll ich das den reinschreiben, ich weiss einfach net mehr weiter

  • <?php
    if (isset($_GET["submit"]))
    {
    echo "<li>Name: " . $_GET['vorname'];
    echo "<li>Anrede: ". $_GET['anrede'];
    echo "<li>Anliegen: ". $_GET['anliegen'];


    if ($_GET['abgesendet']=="Ja")
    {


    if ($_GET['vorname'] =="")
    {
    echo"<p>Bitte Vornamen eintragen!!!</p>";
    }

    if ($_GET['gender'] =="")
    {
    echo"<p>Bitte Anrede eintragen!!!</p>";
    }

    if ($_GET['anliegen'] =="")
    {
    echo"<p>Bitte Anliegen eintragen!!!</p>";
    }
    }
    }
    else
    {



    ?>

    <hr/>
    <form method="get" action= "formular.php" >


    <p>Anrede: <br/>
    <input type="radio"
    name="anrede"
    value="w"
    <?php
    if ($_GET['anrede'] == "w")


    {
    echo 'checked="checked" ';
    }
    ?>
    />Frau <br/>


    <input type="radio"
    name="anrede"
    value="m"
    <?php
    if ($_GET['anrede'] =="m")


    {
    echo 'checked="checked" ';
    }
    ?>


    />Herr
    </p>


    <p>Name: <br/>

    <input type="text" value=" <?php
    echo $_GET['vorname'];?>"
    name="vorname" size="20" maxlength="50" /> </p>;



    <p>Anliegen: <br/>
    <textarea name="anliegen" rows="8" cols="40">
    <?php echo $_GET ['anliegen'];
    ?> </textarea>
    </p>


    <input type="hidden" name="abgesendet" value="Ja" />


    <input type="submit" name="submit" value="Eingaben senden "/>


    </form>

    <?php
    }


    ?>

  • Warum benutzt du nicht [ c o d e ] [ / c o d e ] (ohne Leerzeichen)????
    Na ja egal hier ist der richtige Code:

  • vielen dank du hast mir schon weit geholfen, aber wenn ich das formular abschicke zeigt er mir eine fehlermeldung in zeile 87 an und sagt mir nicht "Bitte Anliegen eintragen. )) vielen dank

  • Ich habe das doch richtig verstanden, dass die Datei mit dem schon geposteten Inhalt formular.php heißt, oder?
    Weil sonst, kann ich dir leider nicht weiterhelfen, weil ich den Inhalt nicht kenne.

  • Hallo seven,


    versuch es mal damit:

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  </span><span class="syntaxcomment">// Alle benoetigten Variablen deklarieren und initialisieren<br /><br /></span><span class="syntaxdefault">  $anrede  </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anrede'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anrede'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  $vorname </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'vorname'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'vorname'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  $anliegen</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anliegen'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anliegen'</span><span class="syntaxkeyword">])</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">:</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  <br />  $message </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">  $error_state </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> FALSE</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?><br /></span><br /><form method="get" action= "formular.php" ><br /><br />  <p>Anrede: </p><br />  <input type="radio" name="anrede" value="w" <span class="syntaxdefault"><?php if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anrede </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'w'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> echo </span><span class="syntaxstring">'checked="checked"'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span> >Frau<br />  <input type="radio" name="anrede" value="m" <span class="syntaxdefault"><?php if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anrede </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'m'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> echo </span><span class="syntaxstring">'checked="checked"'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span> >Herr <br /><br />  <p>Name:</p><br />    <input type="text" name="vorname" value= <span class="syntaxdefault"><?php echo $vorname</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?></span>><br />    <p>Anliegen: </p><br />    <textarea name="anliegen" rows="8" cols="40"><span class="syntaxdefault"><?php echo $anliegen</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> ?><br /></span>  </textarea><br />  <p><br />  <input type="submit" name="submit" value="Absenden"><br />  </p><br />  <br /></form><br /><br /><span class="syntaxdefault"><?php<br />  <br />  if </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'submit'</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Formular wurde abgesendet => Eingaben ueberpruefen<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anrede </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      $message</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anrede'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<p>Bitte Anrede eintragen!!!</p>'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">      $error_state </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> TRUE</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">     <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$vorname </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      $message</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'vorname'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<p>Bitte Vornamen eintragen!!!</p>'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">    <br />      $error_state </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> TRUE</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$anliegen </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      $message</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'anliegen'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'<p>Bitte Anliegen eintragen!!!</p>'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">    <br />      $error_state </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> TRUE</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">// Falls nicht alle Felder ausgefuellt wurden => Meldungen anzeigen<br /></span><span class="syntaxdefault">    <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$error_state </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> TRUE</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$message as $msg</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">      </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo $msg</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">      </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    else<br />    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      echo </span><span class="syntaxstring">'Alle Eingaben ok'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">  <br />?><br /></span></span>


    Lies Dir auch mal die Seiten ueber Sicherheit durch - siehe hier: http://www.php-kurs.com/php-und-sicherheit.htm


    LG

Jetzt mitmachen!

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