PHP-Kurs.com, DVD 1

  • Ich bin dabei, das Kontaktformular auf der DVD 1, PHP-Kurs.com, von Axel Pratzner nachzubauen.
    Sicher mache ich immer dabei Fehler, so daß ich nicht zum Ziel komme.
    Kann mir jemand den Quelltext senden?
    Danke

  • Hallo Laura
    Danke für Dein Angebot. Folgend ist der Text zu sehen um den es geht. Solange der php-Teil nicht das value usw. eingetragen ist, funktioniert alles.
    Mit den php-Enträgen in den HTML-Teil kommt dann aber igendwie ein Fehler rein.php


    Danke und beste Grüße

  • Hallo
    Wenn ich das Formular im Firefox aufrufe, müßten die Felder "Name" und "Anliegen" leer sein, damit ich die Inhalte einschreiben und absenden kann.
    Im Feld Name ist aber folgender Eintrag:
    <b>Notice</b>: Undefined index: vorname in <b>C:\xampp\htdocs\Formulare\Formular.php</b> on line <b>59</b><br />
    im Feld Anligen steht:
    <b>Notice</b>: Undefined index: anliegen in <b>C:\xampp\htdocs\Formulare\Formular.php</b> on line <b>61</b><br />
    Ich bin ratlos.
    Beste Grüße

    Einmal editiert, zuletzt von hundebeinem () aus folgendem Grund: Notice: Undefined index: gender in C:\xampp\htdocs\Formulare\Formular.php on line 2 Anrede: Notice: Undefined index: vorname in C:\xampp\htdocs\Formulare\Formular.php on line 3 Vorname: Notice: Undefined index: anliegen in C:\xampp\htdocs\Formulare\Formular.php on line 4 Anliegen: Notice: Undefined index: vorname in C:\xampp\htdocs\Formulare\Formular.php on line 6 Bitte Vornamen eintragen! Notice: Undefined index: gender in C:\xampp\htdocs\Formulare\Formular.php on line 10 Bitte Anrede eintragen! Notice: Undefined index: anliegen in C:\xampp\htdocs\Formulare\Formular.php on line 14 Bitte Anliegen eintragen! Notice: Undefined index: vorname in C:\xampp\htdocs\Formulare\Formular.php on line 19 Anrede Frau Mann Notice: Undefined index: gender in C:\xampp\htdocs\Formulare\Formular.php on line 43 Notice: Undefined index: gender in C:\xampp\htdocs\Formulare\Formular.php on line 48

  • Du greift auf etwas zu was es in diesen $_GET array nicht gibt.


    ob das ordentlich programierung ist weiß ich nicht.
    mann könnte natürlich vorher noch fragen ob isset($_GET['deinkey'])


    Einfacher und was ich mache ist:
    notizen ausblenden
    das geht z.b. indem du an den Anfang deines codes schreibst:
    error_reporting(E_ALL ^ E_NOTICE); siehe: error_reporting


    oder du unterdrückst bei jeden einzelnen aufruf die meldung mit einen @ zeichen.
    z.b. so echo @$_GET['vorname'];

  • e-reporting abschalten - bin ich dagegen.
    Gerade am Anfang brauch man jede "Notice"/"Warning" um zB genau diese Sachen kennen zu lernen :)
    (Ich schreibe nach 2 Jahren immernoch alle Scripte so, dass sie nicht mal eine Notiz ausgeben =)


    @$_GET bin ich dafür WENN man weiß, dass man es mit einem
    if ( isset( $_GET... ) )
    lösen könnte, das script aber "so oder so hier durch laufen soll" :D



    In diesem Fall wäre wohl das "@" angebracht.

    HTML
    <input name="vorname" type="text" value="<?php echo @$_GET['vorname'];?>" size="20" maxlength="20"><br/>
    <p>Anliegen <br/>
    <textarea name="anliegen" cols="20" rows="5"><?php echo @$_GET ['anliegen']?></textarea><br/>




    Übrigens: Du hast die <p>´s überall aufgemacht, schiesst sie aber nicht. ( <p> ... </p> )


    btw - genau der Fehler hatte mich damals auch fertig gemacht :)

  • Also das mit dem @ ist Gift für jeden Neuling.
    Grundsätzlich gilt: Notices kann man ignorieren, das sind keine Fehler, sondern nur Anmerkungen, wie der Name schon sagt.
    Wenn es dich stört dann das machen was Roland gesagt hat.

  • html-seminar.de/woltlab/attachment/452/Hallo
    Ich bedanke mich bei euch allen für die schnelle Hilfe.
    Mein Problem hat sich sicher unter anderen Fehlern und Unkenntnissen verborgen.
    Das Bild im Anhang macht klar, worum es geht.
    Sichtbar ist das im Firefox aufgerufene Formular.
    Der Besucher soll die Notice 43 / 48 nicht präsentiert bekommen und die Eingabefelder sollten im ersten Durchlauf leer sein.
    Im zweiten Durchlauf, falls ein Eintrag vergessen wurde, sollten die Eintragungen des ersten Durchlaufes erhalten werden.
    Das war mit dem php in value bezweckt.
    Der Lehrer axel Pratzner hat das in seinem Videovortrag vorgemacht. Da waren die Felder auch leer. Bei mir sind diese Einträge zu sehen.
    Leider kann ich den Originalquelltext nicht aus dem Video kopieren. Ich muß einen Abschreibefehler gemacht haben.
    Inzwischen sieht mein Text so aus:
    <?php
    echo "<li>Anrede:" .$_GET['gender'];
    echo "<li>Vorname:" .$_GET['vorname'];
    echo "<li>Anliegen:".$_GET['anliegen'];


    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>";
    }


    if($_GET['vorname'] == "" OR
    $_GET['gender'] == "" OR
    $_GET['anliegen'] == "" )


    //wenn eins der Felder leer ist, bring das Formular
    {
    ?>


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


    <p>Anrede</p> <br/>
    <input
    name="gender"
    type="radio"
    value="w" /> Frau
    </p>
    <input
    name="gender"
    type="radio"
    value="m" /> Mann
    </p>


    <?php
    if ($_GET['gender']== "w" )
    {
    echo 'checked="checked"';
    }


    if ($_GET['gender']== "m" )
    {
    echo 'checked="checked"';
    }
    //Die php-Einträge bewirken, dass nach dem ersten Durchlauf die schon gemschten Einträge des Besuchers erhalten bleiben


    ?>
    <br/>
    <p>Name</p> <br/>
    <input name='vorname' type="text" value="<?php echo $_GET['vorname'];?>" size="20" maxlength="20"/> <br/>
    <p>Anliegen</p> <br/>
    <textarea name='anliegen' cols="20" rows="5"> <?php echo $_GET ['anliegen']?> </textarea><br/>


    <input type="submit" value="absenden"/>
    </form>


    <?php
    }
    //heißt: wenn Felder ausgefüllt sind, dann Auswertung
    else
    {
    echo "<h2>hier Auswertung</h2>";
    }
    ?>
    Beste Grüße

  • Danke für die Rüge.
    Ich habe den Eintrag entspechend Rolands Hinweis gemacht und es klappt.
    Für mich ist nur irritierent, dass in dem Videovortrag von Praxner,
    nachdem ich das Formular nachgebaut habe, dieser Eintrag nicht notwendig war.
    Entscheidend für mich ist aber erstmal ein brauchbares Ergebnis.
    Danke

  • Man kann sowas auch dauerhaft abstellen, das hat Axel vermutlich gemacht.
    Für Einsteiger empfiehlt sich aber, diese Notizen generell angeschaltet zu lassen, wenn sie nicht gerade stören.

  • Jup scheint so
    obwohl in php.net steht das die voreinstellung in der php.ini ist, dass Notice nicht ausgegeben werden .
    aber xammp scheint das gleich zu ändern (ist auch gut so findsch)


    ich habe übrigens gerade mal geschaut was sonst noch so für einstellungen sind mit:
    print_r(ini_get_all());
    und meine error log datei gesehen die hat inzwischen 200 000 zeilen

Jetzt mitmachen!

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