Mit PHP E-Mails versenden und Dateien hochladen – Formulare

Ein Kontaktformular besteht aus einem HTML Formular, in das die Daten eingegeben werden, und aus PHP-Code, der die Daten überprüft und versendet.
Das Formular an sich ist recht simpel aufgebaut.



Das Formular:

<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" 
onSubmit="return isValid()">
<input name="betreff" type="text" id="betreff"><br>
<textarea name="nachricht" cols="30" rows="3" id="nachricht" ></textarea><br>
<input name="Submit" type="submit" value="Senden">
</form>

Erklärung:
01: Einleitender form-Tag, verschickt werden die Daten im Hintergrund mit der post-Methode. Die PHP-Angabe im action-Attribut definiert den Zielort der Daten, in diesem Falle werden die Daten an dasselbe Dokument geschickt.

02: Das Inputfeld „betreff“ wird definiert.
03: Die Textarea „nachricht“ wird mit 30 Spalten und 3 Zeilen definiert.
04: „Senden“-Button
05: Abschliesender form-Tag

Dazugehöriger PHP-Code :

<?php
$betreff = $_POST["betreff"];
$nachricht = $_POST["nachricht"];
$empfaenger="hiergehtnix@html-einfach.de";
if(($nachricht!='')&&($betreff!=''))
mail($empfaenger, $betreff, $send);
?>

Erklärung:
• 02: Der Inhalt der vom Formularfeld „betreff“ gesendet wurde, wird ausgelesen und in die Variable $betreff geschrieben.

• 03: Der Inhalt der vom Formularfeld „nachricht“ gesendet wurde, wird ausgelesen und in die Variable $nachricht geschrieben.

• 04: Ihre E-Mail Adresse wird in die Variable $empfaenger gespeichert.

• 05: Die If-Anweisung [wenn(…)dann] prüft ob der Inhalt der beiden Formularfelder nicht leer ist, wenn das der Fall ist, wird die nächste Zeile ausgeführt.

• 06: Die mail()-Funktion sendet nun die E-Mail ab. Die drei Werte, durch ein Komma getrennt sind ihre Übergabevariablen. Der Empfänger der erste, der Betreff der zweite, und der Inhalt der Nachricht der dritte.

Das obengezeigte Beispiel ist nur eine Grundlage auf der aufgebaut werden kann. Das Script ist zwar funktionstüchtig, man sollte es jedoch nicht verwenden. Böswillig programmierte Programme, die das Internet durchforsten werden früher oder später auf solch ein ungesichertes Kontaktformular stoßen und massenhaft Werbung versenden. Um dies zu vermeiden gibt es verschiedene Möglichkeiten. Sei es die Abfrage von trivialen Fragen (wieder mit Formularfeldern als Eingabe und einer If-Anweisung zum Abfragen) oder das Lösen eines Captchas (Bild mit schwer erkennbaren Zeichen, die meist nur Menschen richtig eingeben können), meist sind schon die einfachsten Dinge zu schwer für so ein Programm.

Code des Kontaktformulares zum kopieren:

<form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" 
    onSubmit="return isValid()">
<input name="betreff" type="text" id="betreff"><br>
<textarea name="nachricht" cols="30" rows="3" id="nachricht" ></textarea><br>
<input name="Submit" type="submit" value="Senden">
</form>

<?php
$betreff = $_POST["betreff"];
$nachricht = $_POST["nachricht"];
$empfaenger="hiergehtnix@html-einfach.de";
if(($nachricht!='')&&($betreff!='')
mail($empfaenger, $betreff, $send);
?>

Dateien mit PHP hochladen

Hier ist ein einfaches PHP-Script, um eine Datei hochzuladen. Dieses Beispiel ermöglicht das Hochladen von Bildern und beschränkt die Dateigröße auf 2 MB (2.000.000 Bytes). Der Code besteht aus zwei Teilen: dem PHP-Script, das den Datei-Upload verarbeitet, und dem HTML-Formular, mit dem Benutzer die Datei auswählen und hochladen können.

PHP-Code:

<?php
// Zielordner für hochgeladene Dateien
$target_dir = "uploads/";

// Überprüfen, ob das Formular abgeschickt wurde
if (isset($_POST['submit'])) {
    // Dateiname erstellen
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

    // Flag, um festzustellen, ob der Upload fortgesetzt werden soll
    $uploadOk = 1;

    // Dateigröße auf 2 MB (2.000.000 Bytes) beschränken
    if ($_FILES["fileToUpload"]["size"] > 2000000) {
        echo "Die Datei ist zu groß.";
        $uploadOk = 0;
    }

    // Nur bestimmte Dateitypen zulassen (in diesem Fall JPG, JPEG, PNG und GIF)
    $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
    $allowed_filetypes = array("jpg", "jpeg", "png", "gif");
    if (!in_array($imageFileType, $allowed_filetypes)) {
        echo "Nur JPG, JPEG, PNG und GIF Dateien sind erlaubt.";
        $uploadOk = 0;
    }

    // Überprüfen, ob $uploadOk auf 0 gesetzt wurde (aufgrund eines Fehlers)
    if ($uploadOk == 0) {
        echo "Die Datei wurde nicht hochgeladen.";
    } else {
        // Wenn alles in Ordnung ist, versuchen Sie, die Datei hochzuladen
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "Die Datei " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " wurde erfolgreich hochgeladen.";
        } else {
            echo "Beim Hochladen der Datei ist ein Fehler aufgetreten.";
        }
    }
}
?>

HTML-Code:

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Datei-Upload</title>
</head>
<body>

<h1>Datei hochladen</h1>

<form action="" method="post" enctype="multipart/form-data">
    <label for="fileToUpload">Wählen Sie eine Datei zum Hochladen aus:</label>
    <input type="file" name="fileToUpload" id="fileToUpload">
    <br><br>
    <input type="submit" value="Datei hochladen" name="submit">
</form>

</body>
</html>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Scroll to Top