k-senden2.php
k-senden2.php
Die in dieses Dokument geschickten Daten stammen vom "versteckten"
Formular der Datei k-senden1.php
.
Diese Daten konnten geschickt werden, weil die Kontrollen in der Datei
k-senden1.php
positiv waren, im E-Mail Feld kein Eintrag war,
dafür aber vom Anwender das Senden mit der "Senden"-Taste veranlasst
wurde.
Die Variablen müssen je nach Verwendungszweck zum Teil unterschiedlich verarbeitet werden.
Für die Anzeige in HTML auf dem Bildschirm müssen zum Beispiel die Umlaute in den HTML Code umgewandelt werden, was beim Senden per E-Mail aber Fehler erzeugen würde.
Das Mail wird dem Empfänger zugestellt und es erscheint eine Bestätigungsmeldung auf dem Bildschirm des Anwenders.
Dem Absender wird angezeit, dass wenn er eine Antwort erhalten will, eine E-Mail Adresse oder seine Telefonnummer mitzuteilen hat.
Prinzip
Wenn beim Formular <form ... method="post">
angegeben wurde,
werden die Variablen als "POST"-Variablen gesendet.
Wenn beim Formular <form ... method="get">
angegeben wurde,
werden die Variablen als "GET"-Variablen gesendet.
Da wir im Dokument "normale" Variablen verwenden möchten, müssen diese gesendeten Variablen in "normale" Variablen umgewandelt werden.
Code: $... = $_POST ['...'];
Befehl: $k_name = $_POST ['k_name'];
Wandelt die "Post"-Variablen in "normale" Variablen um.
$_POST ['k_name']
Die mit der Post-Methode an diese Datei
gesendeten Variablen sind Post-Variablen.
$k_name
Dies ist eine (umgewandelte) "normale" Variable.
// Variablen umwandeln $k_name = $_POST ['k_name']; $k_email = $_POST ['k_email']; $k_betreff = $_POST ['k_betreff']; $k_mitteilung = $_POST ['k_mitteilung'];
Code: trim
Befehl: $k_name = trim($k_name);
Wenn diese Leerzeichen nicht entfernt werden, wird ein Feld mit Leerzeichen nicht als leer erkannt, da als Inhalt diese Leerzeichen sind.
In einem Formular soll auch eine Fehlermeldung kommen, wenn als Inhalt nur Leerzeichen sind.
// Leerzeichen entfernen $k_name = trim($k_name); $k_email = trim($k_email); $k_betreff = trim($k_betreff); $k_mitteilung = trim($k_mitteilung);
Grundlagen und Workshops:
Code: stripslashes("Zeichenkette")
Befehl: $k_name = stripslashes($k_name);
// Backslash entfernen $k_name = stripslashes($k_name); $k_email = stripslashes($k_email); $k_betreff = stripslashes($k_betreff); $k_mitteilung = stripslashes($k_mitteilung);
Grundlagen und Workshops:
Zweck:
// Alle Variablen zum Senden "s" $sk_name = $k_name; $sk_email = $k_email; $sk_betreff = $k_betreff; $sk_mitteilung = $k_mitteilung;
Zweck
// Alle Variablem für Anzeige "a" $ak_name = $k_name; $ak_email = $k_email; $ak_betreff = $k_betreff; $ak_mitteilung = $k_mitteilung;
Code: htmlentities("Zeichenkette")
Diese Funktion wandelt alle in einer Zeichenkette enthaltenen Sonderzeichen inkl. Umlaute in die entsprechende HTML-Codes um.
Oder anders ausgedrückt: Wandelt alle alle Zeichen, die eine HTML-Code-Entsprechung haben, in diese Entsprechung um.
Konstanten
ENT_COMPAT
Konvertiert nur doppelte Anführungszeichen
und lässt einfache Anführungszeichen unverändert.
ENT_QUOTES
Konvertiert sowohl doppelte als auch einfache
Anführungszeichen.
ENT_NOQUOTES
Lässt doppelte und einfache
Anführungszeichen unverändert.
Befehl: $ak_name = htmlentities($ak_name,ENT_QUOTES);
Wandelt alle Sonderzeichen, die als Steuercode missverstanden werden könnten, in den HTM-Code dieser Zeichen um.
Der Befehl erstellt eine neue Variable mit dem gleichen Namen der alten Variablen.
In den neuen Variablen sind alle Sonderzeichen in deren HTML-Code umgewandelt. Dieser HTML-Code zeigt das Sonderzeichen in einem HTML-Dokument korrekt an, kann aber als Steurezeichen keine Funktion mehr ausführen.
// Sonderzeichen umwandeln $ak_name = htmlentities($ak_name,ENT_QUOTES); $ak_email = htmlentities($ak_email,ENT_QUOTES); $ak_betreff = htmlentities($ak_betreff,ENT_QUOTES); $ak_mitteilung = htmlentities($ak_mitteilung,ENT_QUOTES);
Grundlagen und Workshops
Code: nl2br("Zeichenkette")
Befehl: $ak_mitteilung = nl2br($ak_mitteilung);
Zeilenumbrüche richtig anzeigen.
Durch diesen Code wird eine modifizierte Zeichenkette zurückgegeben,
in der Zeilenumbrüche durch den entsprechenden HTML-Tag
<br>
ersetzt sind.
Anders ausgedrückt: Dieser Code fügt bei allen
Zeilenumbrüchen den HTML-Tag <br>
ein,
damit der Zeilenumbruch auch ausgeführt wird.
// Zeilenumbrüche richtig anzeigen $ak_mitteilung = nl2br($ak_mitteilung);
Grundlagen und Workshops
k_speichern1.php
,
zum Beispiel aus Spam-Robots, Variablen an diese Datei senden, müssen
auch hier gewisse Kontrollen (nochmals) durchgeführt werden.
Es wird (nochmals) überprüft, ob das Feld mit der E-Mai Adresse wirklich leer ist.
Dies ist vor allem eine Kontrolle, ob ein Spam-Robot hier etwas hineingeschrieben hat.
Wenn das Feld nicht leer ist erfolgt ein Abbruch mit einer Mitteilung, dass hier etwas nicht stimmt.
Die Werte "true" und "false" sind gleich, wie im Dokument
k_speichern1.php
.
Bei einem Feld mit Eintrag ist der Wert "true".
Bei leerem Feld ist der Wert "false".
// Kontrolle ob im E-Mail Feld etwas steht if ($k_email != "") { $yk_email = true;} else {$yk_email = false;} // Meldung bei nicht leerem E-Mail Feld = true if ($yk_email) { echo ' <h4 style="margin-top:3em"> Fehler: Bitte informieren Sie den Webmaster</h4> <p> <span class="sprache"> error: please inform the webmaster / erreur: veuillez informer le responsable du site</span></p> '; }
Vollständigkeit
Plausibilität
Alle Kontrollen sind positiv verlaufen.
Es wurde kontrolliert ob das E-Mail Feld wirklich leer ist.
if ( !$yk_email ){ ....
Das Mail wird an die E-Mail Adresse des Autors geschickt.
Es können maximal 3 Variable geschickt werden; je eine für "Betreff", "Mitteilung" und "Name".
Da keine E-Mail Adresse angegeben wurde, muss dafür auch keine Variable vorgesehen werden.
// Mail senden mail("alfred@brandenberger.eu", "$sk_betreff", "$sk_mitteilung", "$sk_name");
Nach dem Senden des E-Mails wird der Text der gesendeten Mitteilung und eine Sende-Bestätigung auf dem Bildschirm des Anwenders angezeigt.
Dieser Text wird in dieser Anleitung auf dem Server nicht gespeichert.
// Mitteilung anzeigen echo " <h3 style='margin-top:3em'> Sie haben dem Autor folgendes Mail geschickt:</h3> <table border='1px' cellspacing='1' cellpadding='3'> <tr> <th>Absender</th> <td width='350'>$ak_name</td> </tr> <tr> <th>Ihre E-Mail Adresse</th> <td>Keine Angabe</td> </tr> <tr> <th>Betreff</th> <td>$ak_betreff</td> </tr> <tr> <th>Mitteilung</th> <td>$ak_mitteilung</td> </tr> </table> <h4> - Besten Dank! - </h4> <p>(Wenn Sie wünschen, dass ich Ihnen antworte, teilen Sie mir bitte Ihre E-Mail Adresse oder Telefonnummer mit.)</p> "; } ?>
k-senden2.php
Pfad: /kontakt/k-senden2.php
Der Quelltext ist im Stammverzeichnis dieser Website abgelegt.
<?php /* Allgemiein: */ // Variablen umwandeln $k_name = $_POST ['wk_name']; $k_email = $_POST ['wk_email']; $k_betreff = $_POST ['wk_betreff']; $k_mitteilung = $_POST ['wk_mitteilung']; // Leerzeichen entfernen $k_name = trim($k_name); $k_email = trim($k_email); $k_betreff = trim($k_betreff); $k_mitteilung = trim($k_mitteilung); // Backslash entfernen $k_name = stripslashes($k_name); $k_email = stripslashes($k_email); $k_betreff = stripslashes($k_betreff); $k_mitteilung = stripslashes($k_mitteilung); /* Zum Senden */ // Alle Variablen zum Senden "s" $sk_name = $k_name; $sk_email = $k_email; $sk_betreff = $k_betreff; $sk_mitteilung = $k_mitteilung; /* Für Anzeige */ // Alle Variablem für Anzeige "a" $ak_name = $k_name; $ak_email = $k_email; $ak_betreff = $k_betreff; $ak_mitteilung = $k_mitteilung; // Sonderzeichen umwandeln $ak_name = htmlentities($ak_name,ENT_QUOTES); $ak_email = htmlentities($ak_email,ENT_QUOTES); $ak_betreff = htmlentities($ak_betreff,ENT_QUOTES); $ak_mitteilung = htmlentities($ak_mitteilung,ENT_QUOTES); // Zeilenumbrüche richtig anzeigen $ak_mitteilung = nl2br($ak_mitteilung); /* Kontrollen und Meldungen */ // Kontrolle ob im E-Mail Feld etwas steht = true if ($k_email != "") { $yk_email = true;} else {$yk_email = false;} // Meldung bei nicht leerem E-Mail Feld = "true" if ($yk_email) { echo ' <h4 style="margin-top:3em"> Fehler: Bitte informieren Sie den Webmaster</h4> <p> <span class="sprache"> error: please inform the webmaster / erreur: veuillez informer le responsable du site</span></p> '; } // Senden, wenn E-Mail Feld leer ist = false if ( !$yk_email){ // Mail senden mail("alfred@brandenberger.eu", "$sk_betreff", "$sk_mitteilung", "$sk_name"); // Mitteilung anzeigen echo " <h3 style='margin-top:3em'> Sie haben dem Autor folgendes Mail geschickt:</h3> <table border='1px' cellspacing='1' cellpadding='3'> <tr> <th>Absender</th> <td width='350'>$ak_name</td> </tr> <tr> <th>Ihre E-Mail Adresse</th> <td><span class='gelb'>Keine Angabe</span></td> </tr> <tr> <th>Betreff</th> <td>$ak_betreff</td> </tr> <tr> <th>Mitteilung</th> <td>$ak_mitteilung</td> </tr> </table> <h4> - Besten Dank! - </h4> <p>(Wenn Sie wünschen, dass ich Ihnen antworte, teilen Sie mir bitte Ihre E-Mail Adresse oder Telefonnummer mit.)</p> "; } ?>↑