Antworten auf deine Fragen:
Neues Thema erstellen

Ich suche Tutorials für ein PHP-Kontaktformular

dn3d_fanboy

Aktives Mitglied

Hallo allerseits,

ich versuche gerade mit dem Buch "Codin´ for the Web" von Charles Wyke-Smith ein PHP-Kontaktformular hinzubekommen.

Da das Buch im Jahr 2007 veröffentlicht wurde und auf PHP4 basiert, ist meine erste Frage, ist der darin enthaltenen Inhalt überhaupt noch aktuell?

Vielleicht könnt ihr mir aber auch mit Links zu Tutorials helfen. Es geht mir darum, wie ich ein Kontaktformular (eventuell auch die Formulardaten eines Logins) mit PHP verschicke, diese sicher validiere und den Nutzer auf Fehler hinweise sowie das Vorgehen gegen Magic Quotes.

Das steht zwar alles in dem oben erwähnten Buch, nur bin ich mir halt nicht sicher, ob das noch aktueller Standard ist (ich hab hier auch mal was von Validierung mit jQuery gelesen).

Ich dake euch jedenfalls im Voraus.

Achja, das ist der Code, den ich bisher mit Hilfe des Buches geschrieben habe. Trotz der Validierung, ob etwas in den Feldern steht, wird das Formular versandt.

Code:
<?php 
              if ($_POST['gesendet']) {
              
              $vorname = $_POST['vorname'];
              
              $nachname = $_POST['nachname'];
              
              $firma = $_POST['firma'];
              
              $email = $_POST['email'];
              
              $telefon = $_POST['telefon'];
              
              $betreff = $_POST['betreff'];
              
              $nachricht = $_POST['nachricht'];
              
              // Magic Quotes ausschalten, um Sonderzeichen bei Reload sichtbar zu machen
              if ( get_magic_quotes_gpc() ){
              
              $vorname = stripslashes($vorname);
              
              $nachname = stripslashes($nachname);
              
              $firma = stripslashes($firma);
              
              $email = stripslashes($email);
              
              $telefon = stripslashes($telefon);
              
              $betreff = stripslashes($betreff);
              
              $nachricht = stripslashes($nachricht);
              
              }
              
              // Validierung, ob Formularfelder leer sind
              $fehler_nachricht=array();
              
              if ($vorname=="") {
              $fehler_nachricht[] ="Bitte geben Sie Ihren Vornamen ein";
              }
              if ($nachname=="") {
              $fehler_nachricht[] ="Bitte geben Sie Ihren Nachname ein";
              }
              if ($email=="") {
              $fehler_nachricht[] ="Bitte geben Sie Ihren Emailadresse ein";
              }
              if ($betreff=="") {
              $fehler_nachricht[] ="Bitte geben Sie einen Betreff ein";
              }
              if ($nachricht=="") {
              $fehler_nachricht[] ="Bitte geben Sie eine Nachricht ein";
              }
              
              foreach ($fehler_nachricht as $fehler) {
              
              echo ("$fehler <br />");
              
              }
              
        // Angaben zur Zieladresse an die das Formular geschickt wird, inkl. Aufbau der Ausgabe in der Email und Antwort auf Website    
          
        $ziel_email="jb-dfw@gmx.de";
        
        $email_betreff="Test des Formulars";
        
        $email_hauptteil = "$vorname\n$nachname\n$firma\n$email\n$telefon\n$betreff\n$nachricht";
        
        mail ($ziel_email, $email_betreff, $email_hauptteil);
        
        print "Email versandt";
  
}
?>
               
             <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
             
                    <h3>Senden Sie eine Nachricht</h3>
                    <label for="vorname">Vorname*:</label> <br />
                    <input type="text" name="vorname" size="20" id="vorname" value="<?php echo $vorname ?>" />
                    <br />
             
                    <label for="nachname">Nachname*:</label> <br />
                    <input type="text" name="nachname" size="20" id="nachname" value="<?php echo $nachname ?>" />
                    <br />
             
                    <label for="nachname">Firma*:</label> <br />
                    <input type="text" name="firma" size="20" id="firma" value="<?php echo $firma ?>" />
                    <br />
             
                    <label for="email">Email*:</label> <br />
                    <input type="text" name="email" size="20" id="email" value="<?php echo $email ?>" />
                    <br />
                   
                   <label for="email">Telefon*:</label> <br />
                    <input type="text" name="telefon" size="20" id="telefon" value="<?php echo $telefon ?>" />
                    <br />
             
                    <label for="betreff">Betreff*:</label> <br />
                    <input type="text" name="betreff" size="20" id="betreff" value="<?php echo $betreff ?>" />
                    <br />
             
                    <label for="nachricht">Geben Sie hier Ihre Nachricht ein*:</label> <br />
                    <textarea name="nachricht" rows="5" cols="20" id="nachricht"><?php echo $nachricht ?></textarea>
                    <br />
                   
                   <input type="submit" name="gesendet" value="Senden" />
             
             </form>
 

Duddle

Posting-Frequenz: 14µHz

AW: Ich suche Tutorials für ein PHP-Kontaktformular

Naja, reduzieren wir mal das Ding auf ein Minimum. Das meiste ist ja Wiederholung.
PHP:
<?php 
if ($_POST['gesendet']) {
    $vorname = $_POST['vorname'];
    // Magic Quotes ausschalten, um Sonderzeichen bei Reload sichtbar zu machen
    if ( get_magic_quotes_gpc() ){
	$vorname = stripslashes($vorname);
    }
    // Validierung, ob Formularfelder leer sind
    $fehler_nachricht=array();
    if ($vorname=="") {
	$fehler_nachricht[] ="Bitte geben Sie Ihren Vornamen ein";
    }
    foreach ($fehler_nachricht as $fehler) {
	echo ("$fehler <br />");
    }
    // Angaben zur Zieladresse an die das Formular geschickt wird, inkl. Aufbau der Ausgabe in der Email und Antwort auf Website    
    $ziel_email="jb-dfw@gmx.de";
    $email_betreff="Test des Formulars";
    $email_hauptteil = "$vorname\n$nachname\n$firma\n$email\n$telefon\n$betreff\n$nachricht";
    mail ($ziel_email, $email_betreff, $email_hauptteil);
    print "Email versandt";
}
?>
//formular-html
Falls das Formular abgeschickt wurde, prüft er ob die Variable leer ist (falls notwendig werden noch überflüssige Slashes entfernt) und notfalls eine Fehlerausgabe erzeugt. Dann wird die Mail abgeschickt. Diesen Fehler solltest du selbst beheben können.

Was du genau validierst ist deine Sache. Falls dich nur leere Variablen stören, reicht der derzeitige Ansatz ja. Allgemein kannst du ab PHP5.2 die Filter-Erweiterung benutzen, die bietet mehrere Validierungs- und Bereinigungs-Funktionen frei Haus.
Die Validierung mit jQuery bzw. JS ist absolut unabhängig von einer serverseitigen Überprüfung. Falls du den Unterschied clientseitig / serverseitig nicht kennst, google danach. Falls doch, dann sollte dir schon bewusst sein welchen Zweck JS dabei erfüllt.

Der Rest sind normale PHP-Grundkonstrukte, da gibt es nichts zu meckern.


Duddle
 

fth

Noch nicht viel geschrieben

AW: Ich suche Tutorials für ein PHP-Kontaktformular

Schau dir einmal dein if genauer an ...
Was passiert genau wenn welcher Ausdruck wahr ist ...
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben