Bestätigungsemail

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bestätigungsemail

    Hallo,

    Ich will, dass man, nachdem man sich ins Gästebuch eingetragen hat, eine Bestätigungsmail bekommt. Das Gästebuch funktioniert und die Mail funktioniert auch solange ich eine E-Mail-Adresse eingebe.
    Allerdings will ich ja das die E-Mail an denjenigen geht, der sich einträgt. Und bis jetzt kommt immer ein Error: Notice: Undefined index: email in C:\xampp\htdocs\gaestebuch.php on line 92




    HTML-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    
    <?php
    define ( 'MYSQL_HOST', 'localhost' );
    define ( 'MYSQL_BENUTZER', 'root' );
    define ( 'MYSQL_KENNWORT', '' );
    define ( 'MYSQL_DATENBANK', 'gästebuch' );
    
    $db_link = @mysql_connect (MYSQL_HOST,
    MYSQL_BENUTZER,
    MYSQL_KENNWORT);
    
    if ( ! $db_link )
    {
    die('keine Verbindung zur Zeit möglich -
    später probieren ');
    }
    
    $db_sel = mysql_select_db( MYSQL_DATENBANK )
    or die("Auswahl der Datenbank fehlgeschlagen");
    ?>
    
    <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>"
    method="POST" >
    <p>Ihr Name:<br />
    <input type="text" name="name" value="" />
    </p>
    
    <p>Ihre E-Mail-Adresse:<br />
    <input type="text" name='email' value="" />
    </p>
    
    <p>Ihre Homepage:<br />
    <input type="text" name="url" value="" />
    </p>
    
    <p>Gästebucheintrag:<br />
    <textarea name="eintrag" rows="10" cols="50"></textarea>
    </p>
    
    <input type="Submit" value="speichern" />
    </form>
    
    <?php
    
    
    
    array_walk ( $_POST, 'eingabebereinigen' );
    array_walk ( $_GET, 'eingabebereinigen' );
    array_walk ( $_REQUEST, 'eingabebereinigen' );
    
    function eingabebereinigen(&$value, $key)
    {
    $value = strip_tags($value, '<p><br /><b><strong>');
    
    $value = htmlspecialchars($value, ENT_QUOTES);
    
    $value = trim($value);
    }
    
    
    
    $sql = " INSERT INTO gaestebuch ";
    $sql .= " SET ";
    $sql .= " name ='". $_POST['name'] ."', ";
    $sql .= " email ='". $_POST['email'] ."', ";
    $sql .= " url ='". $_POST['url'] ."', ";
    $sql .= " datum ='". date("Y-m-d H:i:s") ."', ";
    $sql .= " eintrag='". $_POST['eintrag'] ."' ";
    values (NULL,'$email')   ;
    echo "<hr />SQL: $sql<hr />";
    
    $db_erg = mysql_query( $sql );
    if ( ! $db_erg )
    {
    die('Ungültige Abfrage: ' . mysql_error());
    }
    
    echo '<p><a href="projekt.php">Gästebuch anzeigen</a></p>';
    
    
    
    
    
    
    
    $sql = select 'email' from 'gastebuch'
    
    
    $empfaenger = $_POST['email'] ;
    $absender   = "ich@testkarnickel.de";
    $betreff    = "PHP-Mail-Test";
    $mailtext   = "Inhalt einer Mail zum Test von PHP";
    $antwortan  = "ICH@testkarnickel.de";
    
    mail( $empfaenger,
          $betreff,
          $mailtext,
          "From: $absender\nReply-To: $antwortan");
    
    
     exit;
    ?>
    
    
    </html>
    
    Danke im Vorraus,

    ttrf
    Zuletzt geändert von ttrf; 21.05.2012, 15:50.

  • #2
    Ein Notice ist kein Fehler, sondern nur ein Hinweis auf schlampigen Code. Und das ist bei dem Code auch richtig, denn du schickst die Mail ja sofort los, ohne das etwas passiert. Du musst also vorher prüfen, ob überhaupt POST-Werte versendet wurden.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also muss ich eine if-Bedingung einbauen. Und die Bedingung muss dann sein, dass die Werte in der Datenbank gespeichert sind. Aber wie kann ich das da reinschreiben?

      Kommentar


      • #4
        Nein, du musst zuerst prüfen, ob überhaupt Daten per POST übermittelt wurden. Und dann erst kommt der komplette Rest. Also Daten in DB schreiben und Mail verschicken.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Warning: mail() [function.mail]: SMTP server response: 503 No valid recipients specified. in C:\xampp\htdocs\gaestebuch.php on line 72

          tut mir Leid, diesen Warning hatte ich vorhin übersehen.
          Wenn ich die Email eingebe und speichere verschwindet die Notice, aber dieser Warning bleibt.Es kommt dann auch keine E-mail bei mir an.
          Zuletzt geändert von ttrf; 21.05.2012, 17:13.

          Kommentar


          • #6
            Sorry, aber hörst du mir überhaupt zu? Dein Problem ist, dass schon beim Aufruf der Seite der gesamte Code ab array_walk ausgeführt wird. Und da du zu dem Zeitpunkt noch keine Mail-Adresse hast, knallt es.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              sry, ich tuh mir mit php sehr schwer.

              Ich weiß nicht wie ich prüfen kann ob die Daten per POST übermittelt werden.

              Und wenn ich die Daten in die Datenbank eingebe und ne Mail schicke, passiert das was ich eben beschrieben hab.

              Tut mir Leid, mein Lehrer hat mich ins kalte Wasser geworfen.

              Kommentar


              • #8
                Zitat von ttrf Beitrag anzeigen
                Ich weiß nicht wie ich prüfen kann ob die Daten per POST übermittelt werden.
                PHP-Code:
                if ($_POST) {
                  ...

                oder besser
                PHP-Code:
                if ($_POST['email']) {
                  ...

                Peter

                PS: Dein SQL-Query sieht auch nicht koscher aus.
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Okay, die Daten werden Übermittelt.
                  Trodtzdem bleibt noch das oben gennante Warning.

                  Kommentar


                  • #10
                    Das Forum hat auch eine Suche. Dann findest du Sachen wie das hier.

                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Okay Danke, jetzt funktioniert es.

                      Ich hatte ein bisschen gesucht, aber ich hab mir nur 20 Themen angeguckt.

                      Kommentar

                      Lädt...
                      X