Anzeige
Tutorialbeschreibung

Tell A Friend - Mailbasierte Weiterempfehlungen

Tell A Friend - Mailbasierte Weiterempfehlungen

In diesem Tutorial geht es um das erstellen eines Tell-A-Friend. Ich werde euch zeigen, wie ihr sowas am besten umsetzen könnt. Ich hoffe, dass es verständlich für euch ist. Dies ist mein erstes Tutorial und ich habe sehr viel Wert auf Rechtschreibung und Verständnis gelegt.


Vorbereitung

Als erstes brauchen wir ein einen guten PHP Editor, ich empfehle immer gerne Weaverslave, PHP-Designer. Aber natürlich geht auch ein ganz normaler Editor. Eine Datenbank brauchen wir nicht, es sei denn du möchtest die Einträge der verschickten Einladungen einsehen.

Schritt 1

Nun erstellen wir erstmal ein neues PHP-Dokument (strg + n). Hier fügen wir dann das Grundgerüst einer HTML-Seite ein.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>New Document</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  </head>
  <body>

Schritt 2

Nun haben wir schon mal das Grundgerüst. Nun kommen die normalen Inputfelder dran. Einige Informationen finden sie paar Tutorials weiter oben.

<form method="POST" action="">
      <table style="font-family: verdana, arial; font-size: 11px; display: <?php echo $none; ?>;">
          <tr>
              <td>
                  Dein Name:
              </td>
          </tr>
          <tr>
              <td>
                  <input type="text" name="name" style="width: 200px; border: 1px solid #eee;" value="<?php echo $name ?>" />
              </td>
          </tr>
          <tr>
              <td>
                  Deine E-Mailaddresse:
              </td>
          </tr>
          <tr>
              <td>
                  <input type="text" name="email" style="width: 200px; border: 1px solid #eee;" />
              </td>
          </tr>
          <tr>
              <td>
                  Name deines Freundes:
              </td>
          </tr>
          <tr>
              <td>
                  <input type="text" name="fname" style="width: 200px; border: 1px solid #eee;" />
              </td>
          </tr>
          <tr>
              <td>
                  E-Mail des Freundes:
              </td>
          </tr>
          <tr>
              <td>
                  <input type="text" name="femail" style="width: 200px; border: 1px solid #eee;" />
              </td>
          </tr>
          <tr>
              <td>
                  <input type="submit" name="senden" value="tell" style="width: 200px; border: 1px solid #eee; margin-top: 7px; background: #fff;" />
              </td>
          </tr>

      </table> 
   </form>


Schritt 3

Wer möchte kann den Inputfeldern auch noch ein value geben, damit bei einer falschen Eingabe die richtigen noch stehen bleiben.

<input type="text" name="femail" style="width: 200px; border: 1px solid #eee;" value="<?php echo $femail; ?>"  />


Schritt 4

Nun geben wir den $_POST-Daten eine Variable. Muss man nicht, mache ich aber gerne, weil ich bei dem Value ja auch schon die Variable $name eingesetzt habe. Außerdem überprüfen wir mit dem if (isset()), ob, auf senden geklickt wurde.

<?php
   
    if (isset($_POST['senden'])) {
       
        $name = htmlentities($_POST['name']);
        $email = htmlentities($_POST['email']);
       
        $fname = htmlentities($_POST['fname']);
        $femail = htmlentities($_POST['femail']);


Schritt 5

Wir werden jetzt mit dem empty() gucken, ob die Variable, in dem Fall, der Input leer ist. Wir könnten natürlich auch noch die Länge angeben und ob bei der E-Mail vor und nach dem @ was steht und ein .irgendwas steht. Dies werde ich aber hier nicht tun, diese könnt ihr euch aber aus dem Internet suchen. Mit dem echo geben wir dann die Fehlermeldung aus.

if (empty($name) || empty($email) || empty($fname) || empty($femail)) {
            echo "Sie haben nicht alles korrekt ausgefüllt.";
        } else {

Schritt 6

Jetzt kommen wir zum eigentlichen Teil. Wir wollen dem Empfänger die E-Mail zusenden. Dies machen wir mit der Funktion mail (). Aber erst werden wir den Text in Variablen schreiben. Ich habe sie $to, $subject genannt, kann aber beliebig geändert werden. $to ist also zu wem es gehen soll. $subject ist der Betreff der E-Mail. $msg ist der Text der in der E-Mail stehen soll .= der Punkt davor ist wichitg, damit erkannt wir, dass das alles zu einer Variable gehört. Das echo gibt die Bestätigung aus, dass die E-Mail versendet wurde. Das $none mit dem Wert NONE ist dafür da um die Tabelle nach dem Senden einfach wegzuschneiden (Display: none;).

<?php
   
    if (isset($_POST['senden'])) {
       
        $name = htmlentities($_POST['name']);
        $email = htmlentities($_POST['email']);
       
        $fname = htmlentities($_POST['fname']);
        $femail = htmlentities($_POST['femail']);
       
       
        if (empty($name) || empty($email) || empty($fname) || empty($femail)) {
            echo "Sie haben nicht alles korrekt ausgefüllt.";
        } else {
           
            $to = $femail;
            $subject = "Hallo ".$fname.", dir wurde eine Seite vorgeschlagen.";
            $msg = "Dein/e Freund/in ".$name." hat dir folgende Seite vorgeschlagen. ";
            $msg .= "www.deinedomain.de , Hier dann der Slogan. ";
            $msg .= "Du kannst dich unterfolgender E-Mailadresse bei deine/m Freund/in bedanken ";
            $msg .= "".$email."";
           
            mail($to, $subject, $msg);
           
            $none = "none";
            echo "Ihre E-Mail wurde abgeschickt.";
        }   
    }


?>

Ende

Ich hoffe, dass ihr alles verstanden habt. Dies ist eine von vielen Lösungen eine Tell A Friend Funktion zu machen. Viel Erfolg beim erstellen deines eigenen Tell A Friend.


Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von jojoho
  • 26.11.2007 - 14:41

insgesammt soliede gemacht, gratz!

Portrait von timmoh
  • 25.11.2007 - 21:16

Ich würde auch noch einen Filter einbauen, ob die Daten richtig sind zumindest bei den Emails:

if(preg_match('/^ [w.!#%&*/=?^`{|}~+-]{1,64}@ [[:alnum:].-]{1,255} . [a-z]{2,6} $/xi', $_POST['femail'] )){
...

}

Portrait von xero7
  • 26.11.2007 - 08:41

Ja, ahbe aber auch geschrieben, dass ich in diesem Tutorial zeigen will, wie man das am besten Umsetzen kann. Damit man erstmal weiß wie das so geht. Die Filter bzw. Spamschutz kann man sich nachträglich einbauen.

Portrait von Tobbsn
  • 25.11.2007 - 13:23

nicht schlecht ABER :)

1. mail() wird von manchen providern nicht mehr unterstützt da sie ein rießiges spam flut auslösen können

2. IP Filter einbauen das man nicht tausend mal auf 'absenden' klicken kann und dann zu einer art spam wird

aber ist sonst echt gut und sauber erklärt ^^

gruß tob


PS: ist nicht böse gemeint, nur in heutigen zeit sollte man das nutzten

Portrait von philip-h
  • 25.11.2007 - 11:48

Na dann mal meinen Glückwunsch zu deinem ersten Workshop! Gut gemacht, weiter so...!

x
×
×