So senden Sie die Seitenadresse. So senden Sie sich mit nur einem Klick eine Webseite per E-Mail zu. Wir platzieren den HTML- und PHP-Code zum Absenden des Formulars in einer Datei
Eine der beliebtesten Funktionen der Website ist das Antrags- oder Bestellformular, dessen Daten per E-Mail an den Websitebesitzer gesendet werden. Solche Formulare sind in der Regel einfach und bestehen aus zwei oder drei Feldern zur Dateneingabe. Wie erstellt man ein solches Bestellformular? Dies erfordert die Verwendung der HTML-Auszeichnungssprache und der Sprache PHP-Programmierung.
Die HTML-Auszeichnungssprache selbst ist einfach; Sie müssen nur herausfinden, wie und wo bestimmte Tags platziert werden. Bei der Programmiersprache PHP ist die Sache etwas komplizierter.
Für einen Programmierer ist die Erstellung eines solchen Formulars nicht schwierig, für einen HTML-Layout-Designer können einige Aktionen jedoch schwierig erscheinen.
Erstellen Sie ein Datenübermittlungsformular im HTML-Format
Die erste Zeile lautet wie folgt
Jetzt lasst uns alles zusammenfügen.
Jetzt machen wir die Felder im Formular zu Pflichtfeldern. Wir haben den folgenden Code:
Erstellen Sie eine Datei, die Daten aus dem HTML-Formular akzeptiert
Dies wird eine Datei namens send.php sein
In der Datei müssen Sie im ersten Schritt Daten aus dem Post-Array akzeptieren. Dazu erstellen wir zwei Variablen:
$fio = $_POST["fio"];
$email = $_POST["email"];
Variablennamen in PHP wird ein $-Zeichen vorangestellt und am Ende jeder Zeile wird ein Semikolon platziert. $_POST ist ein Array, in das Daten aus dem Formular gesendet werden. Im HTML-Formular wird die Sendemethode als method="post" angegeben. Somit werden zwei Variablen entnommen HTML-Formulare. Um Ihre Website zu schützen, müssen Sie diese Variablen durch mehrere Filter – PHP-Funktionen – leiten.
Die erste Funktion konvertiert alle Zeichen, die der Benutzer dem Formular hinzufügen möchte:
In diesem Fall werden in PHP keine neuen Variablen erstellt, sondern bestehende verwendet. Der Filter transformiert das Zeichen „<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Die zweite Funktion dekodiert die URL, wenn der Benutzer versucht, sie dem Formular hinzuzufügen.
$fio = urldecode($fio);
$email = urldecode($email);
Mit der dritten Funktion entfernen wir Leerzeichen am Anfang und Ende der Zeile, falls vorhanden:
$fio = trim($fio);
$email = trim($email);
Es gibt weitere Funktionen, mit denen Sie PHP-Variablen filtern können. Ihre Verwendung hängt davon ab, wie sehr Sie befürchten, dass ein Angreifer versucht, diesem HTML-E-Mail-Übermittlungsformular Programmcode hinzuzufügen.
Validierung der vom HTML-Formular in die PHP-Datei übertragenen Daten
Um zu überprüfen, ob dieser Code funktioniert und ob Daten übertragen werden, können Sie ihn einfach mit der Echo-Funktion auf dem Bildschirm anzeigen:
echo $fio;
Echo“
";
echo $email;
Die zweite Zeile wird hier benötigt, um die Ausgabe von PHP-Variablen in verschiedene Zeilen aufzuteilen.
Senden empfangener Daten aus einem HTML-Formular per PHP an eine E-Mail
Um Daten per E-Mail zu versenden, müssen Sie die Mail-Funktion in PHP verwenden.
mail("An welche Adresse gesendet werden soll", "Betreff des Briefes", "Nachricht (Text des Briefes)","Von: Von welcher E-Mail-Adresse wird der Brief gesendet \r\n");
Beispielsweise müssen Sie Daten an die E-Mail-Adresse des Websitebesitzers oder -managers senden [email protected].
Der Betreff des Briefes sollte klar sein und die Botschaft des Briefes sollte das enthalten, was der Benutzer im HTML-Formular angegeben hat.
mail(" [email protected]", "Bewerbung von der Website", "Vollständiger Name:".$fio.". E-Mail: „.$email ,“Von: [email protected]\r\n");
Es muss eine Bedingung hinzugefügt werden, die prüft, ob das Formular mit PHP an die angegebene E-Mail-Adresse gesendet wurde.
if (mail(" [email protected]", "Auf der Website bestellen", "Vollständiger Name:".$fio.". E-Mail: „.$email ,“Von: [email protected]\r\n"))
{
echo „Nachricht erfolgreich gesendet“;
) anders (
}
Somit sieht der Programmcode der send.php-Datei, die die HTML-Formulardaten an eine E-Mail sendet, wie folgt aus:
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
//echo "
";
//echo $email;
if (mail(" [email protected]", "Bewerbung von der Website", "Vollständiger Name:".$fio.". E-Mail: „.$email ,“Von: [email protected]\r\n"))
( echo „Nachricht erfolgreich gesendet“;
) anders (
echo „Beim Senden der Nachricht sind Fehler aufgetreten“;
}?>
Drei Zeilen zur Überprüfung, ob die Daten in die Datei übertragen werden, sind auskommentiert. Bei Bedarf können sie entfernt werden, da sie nur zum Debuggen benötigt wurden.
Wir platzieren den HTML- und PHP-Code zum Absenden des Formulars in einer Datei
In den Kommentaren zu diesem Artikel stellen viele Leute die Frage, wie man sicherstellen kann, dass sich sowohl das HTML-Formular als auch der PHP-Code zum Senden von Daten per E-Mail in einer Datei befinden und nicht in zwei.
Um diese Arbeit umzusetzen, müssen Sie den HTML-Code des Formulars in der Datei send.php platzieren und eine Bedingung hinzufügen, die das Vorhandensein von Variablen im POST-Array prüft (dieses Array wird vom Formular gesendet). Das heißt, wenn die Variablen im Array nicht vorhanden sind, müssen Sie dem Benutzer das Formular anzeigen. Andernfalls müssen Sie Daten vom Array empfangen und an den Empfänger senden.
Sehen wir uns an, wie man den PHP-Code in der send.php-Datei ändert:
//überprüfen, ob Variablen im POST-Array vorhanden sind
if(!isset($_POST["fio"]) und !isset($_POST["email"]))(
?> ) anders (
//Formular anzeigen
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail(" [email protected]", "Bewerbung von der Website", "Vollständiger Name:".$fio.". E-Mail: „.$email ,“Von: [email protected]\r\n"))(
echo „Nachricht erfolgreich gesendet“;
) anders (
echo „Beim Senden der Nachricht sind Fehler aufgetreten“;
}
}
?>
Wir überprüfen die Existenz einer Variablen im POST-Array mit der PHP-Funktion isset(). Ein Ausrufezeichen vor dieser Funktion in einer Bedingung bedeutet Negation. Das heißt, wenn die Variable nicht existiert, müssen wir unser Formular anzeigen. Hätte ich kein Ausrufezeichen gesetzt, würde die Bedingung wörtlich bedeuten: „Wenn vorhanden, dann zeige das Formular.“ Und das ist in unserem Fall falsch. Natürlich können Sie es in index.php umbenennen. Wenn Sie die Datei umbenennen, vergessen Sie nicht, den Dateinamen in der Zeile umzubenennen