Bestätigungsemail

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by 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

    Comment


    • #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?

      Comment


      • #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

        Comment


        • #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.
          Last edited by ttrf; 21-05-2012, 17:13.

          Comment


          • #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

            Comment


            • #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.

              Comment


              • #8
                Originally posted by ttrf View Post
                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

                Comment


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

                  Comment


                  • #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

                    Comment


                    • #11
                      Okay Danke, jetzt funktioniert es.

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

                      Comment

                      Working...
                      X