Beiträge von Nudelmaus

    Und nun: möge dein Rechner abrauchen!

    Ist er nicht. Ok ich habe Deine Kritik angenommen und Du hast Recht. Ich habe tagelang auf diesen Code geschaut und da ich mich mit PHP nicht auskenne den Wald von lauter Bäumen nicht mehr gesehen. Ausserdem das mit dem unformatiertem Code habe ich erst jetzt gesehen, wie man das macht.

    Die Datei exestiert, aber wie Du erkannt hast, in dem gleichen Verzeichnis. Die von Dir angegebenen Anmerkungen habe ich übernommen und werde morgen testen. Heute ist Sonntag und schalte sowieso gleich ab.

    Also, danke, auch fürs zurückmotzen, habe ich verdient.


    müssen wir dir das wirklich übersetzen?

    Nein. So blöd bin ich auch nicht!

    Desweiteren hatte Stef mich gestern gebeten meinen Code in einem neuen Thema einzugeben, er wollte sich das Problem bei Gelegenheit mal ansehen. Daher auch die direkte Ansprache Stef . Und warum mischt sich m.scatello da wieder ein? Hast Du nix besseres zu tun? Ständig moserst Du nur die Leute an und bringst besserwisserische Kommentare. :cursing:

    Ich weiß sehrwohl das es heißt das keine Datei vorhanden ist, aber ich sehe den verdammten Fehler nicht!!! Also, statt zu kritisieren zeig mir den Fehler, dann komm ich weiter und gehe euch nicht länger auf den Zeiger!

    Gruß

    Moin Stef,

    hier das neue Thema, wie gewünscht. Als Anhang habe ich eine Screenshot des Fehlers angehängt und ganz unten siehst Du meinen Verzeichnis-Baum.


    Das ist meine html-Datei:


    <!DOCTYPE html>

    <html lang="de">


    <head>

    <meta charset="utf-8">

    <meta http-equiv="X-UA-Compatible" content="IE=Edge">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta name="keywords" content="web-cap,Webdesign,günstig,Homepage,Webseite,Gestaltung,SEO,CMS,Responsive,Adaptiv,Duingen,Capellenhagen">

    <meta name="description" content="WEB-CAP Webdesign Britta Krueger">

    <meta name="author" content="Britta Krueger">

    <!-- Site title

    ================================================== -->

    <title>WEB-CAP Webdesign Britta Krüger - Wir geben Ihrer Vorstellung Gestalt!</title>


    <!-- Bootstrap CSS

    ================================================== -->

    <link rel="stylesheet" href="css/bootstrap.min.css">


    <!-- Animate CSS

    ================================================== -->

    <link rel="stylesheet" href="css/animate.min.css">


    <!-- Font Icons CSS

    ================================================== -->

    <link rel="stylesheet" href="css/font-awesome.min.css">

    <link rel="stylesheet" href="css/ionicons.min.css">


    <!-- Main CSS

    ================================================== -->

    <link rel="stylesheet" href="css/style.css">

    <link href="favicon.ico" type="image/x-icon" rel="shortcut icon" />

    <!-- Google web font

    ================================================== -->

    <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,300' rel='stylesheet' type='text/css'>



    </head>


    <body>


    <div class="container">

    <form action="PHPMailer/kontaktformular.php" method="post" class="py-5">

    <div class="form-group">

    <label for="name">Name</label>

    <input type="text" name="name" class="form-control" id="name" placeholder="Name" value="Name">

    </div>

    <div class="form-group">

    <label for="email">E-Mail</label>

    <input type="email" name="email" class="form-control" id="email" placeholder="E-Mail" value="Email">

    </div>

    <div class="form-group">

    <label for="subject">Betreff</label>

    <input type="text" name="subject" class="form-control" id="subject" placeholder="Betreff" value="Betreff">

    </div>

    <div class="form-group">

    <label for="message">Nachricht</label>

    <textarea class="form-control" name="message" id="message" rows="10">Nachricht</textarea>

    </div> <!-- nur zum Testen -->

    <div class="form-group">

    <label for="receiver">E-Mail Empfänger</label>

    <input type="email" name="receiver" class="form-control" id="receiver" placeholder="Empfänger" value="">

    </div> <input type="submit" name="submit" class="btn btn-primary" value="Senden">

    </form>

    </div>

    </body>


    </html>


    und hier die beiden PHP-Dateien entsprechend modifiziert für mich:

    datenüberprüfung.php:

    <?php

    // PHP-Mailer hinzufügen

    use PHPMailer\src\PHPMailer;

    use PHPMailer\src\Exception;

    require_once 'phpmailer/src/Exception.php';

    require_once 'phpmailer/src/PHPMailer.php';

    const HTML_ERROR_START = '<div class="alert alert-danger" role="alert"><p class="m-0">';

    const HTML_ERROR_END = '</p></div>';

    const HTML_SUCCESS_START = '<div class="alert alert-success" role="alert"><p class="m-0">';

    const HTML_SUCCESS_END = '</p></div>';

    /**

    * 1. Überprüfung, ob das Formular abgesendet wurde, denn wir erhalten die Daten erst, wenn das Formular abgesendet wurde.

    */

    if (isset($_POST['submit'])) {

    /**

    * 2. Alle Eingangsdaten filtern

    * - Dazu verwenden wir die Funktion htmlspecialchars()

    * - die Funktion trim() wird genutzt, um alle Leerzeichen am Anfang und Ende des Strings (Zeichenkette) zu entfernen

    */

    $name = htmlspecialchars(trim($_POST['name']));

    $email = htmlspecialchars(trim($_POST['email']));

    $subject = htmlspecialchars(trim($_POST['subject']));

    $message = htmlspecialchars(trim($_POST['message']));


    // Empfänger, nur zum Testen

    $receiver = htmlspecialchars(trim($_POST['receiver']));

    /**

    * 3. Kriterienprüfung

    * - Kriterien, wie z.B., wie viele Zeichen müssen mindestens eingegeben werden, ...

    *

    * Was brauchen wir dafür?

    * 1. Array, welches die ganzen Fehler zugeordnet bekommt

    *

    * Beachte:

    * Alle Daten, welche durch das Formular abgesendet werden, sind erstmal Strings, dies heißt, dass man diese zuerst in deren gewünschten Typ umwandeln muss

    */

    $errors = [];

    $success = false;

    /**

    * input textfeld | name="name"

    * Typ: string

    * Kriterien: mindestens 3 Zeichen lang

    */

    if (empty($name)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie Ihren Namen an!' . HTML_ERROR_END;

    } else if (strlen($name) < 3){

    $errors[] = HTML_ERROR_START . 'Der Name muss mindestens 3 Zeichen lang sein!' . HTML_ERROR_END;

    }

    /**

    * input emailfeld | name="email"

    * Typ: string

    * Kriterien: mindestens 7 Zeichen lang

    */

    if (empty($email)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie Ihre E-Mail-Adresse an!' . HTML_ERROR_END;

    } else if (strlen($email) < 7) {

    $errors[] = HTML_ERROR_START . 'Die E-Mail-Adresse muss mindestens 7 Zeichen lang sein!' . HTML_ERROR_END;

    } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie eine gültige E-Mail-Adresse an!' . HTML_ERROR_END;

    }

    /**

    * input textfeld | name="subject"

    * Typ: string

    * Kriterien: mindestens 3 Zeichen lang, maximal 50 Zeichen lang

    */

    if (empty($subject)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie einen Betreff an!' . HTML_ERROR_END;

    } else if (strlen($subject) < 3) {

    $errors[] = HTML_ERROR_START . 'Der Betreff muss mindestens 3 Zeichen lang sein!' . HTML_ERROR_END;

    } else if (strlen($subject) > 50) {

    $errors[] = HTML_ERROR_START . 'Der Betreff darf maximal 50 Zeichen lang sein!' . HTML_ERROR_END;

    }

    /**

    * textarea | name="message"

    * Typ: string

    * Kriterien: mindestens 10 Zeichen lang (man kann erwarten, dass eine Nachricht länger als 10 Zeichen lang ist)

    */

    if (empty($message)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie eine Nachricht an!' . HTML_ERROR_END;

    } else if (strlen($message) < 10) {

    $errors[] = HTML_ERROR_START . 'Die Nachricht muss mindestens 10 Zeichen lang sein!' . HTML_ERROR_END;

    }


    // nur zum Testen

    if (empty($receiver)) {

    $errors[] = HTML_ERROR_START . 'Bitte geben Sie die E-Mail des Empfängers an!' . HTML_ERROR_END;

    }

    /**

    * 4. Überprüfung, ob Fehler vorhanden sind, wenn nicht, dann Mailversand ausführen

    * - für den Mailversand verwenden wir den PHPMailer

    */

    if (count($errors) === 0) {

    $mailer = new PHPMailer();

    $mailer->CharSet = 'UTF-8'; // Charset setzen (für richtige Darstellung von Sonderzeichen/Umlauten)

    $mailer->setFrom($email, $name); // Absenderemail und -name setzen

    $mailer->addAddress(info@web-cap.de); // Empfängeradresse

    $mailer->isHTML(true);

    $mailer->Subject = 'Neue Nachricht vom Kontaktformular'; // Betreff der Email

    $mailer->Body = '<h3>Neue Nachricht von: ' . $name . '</h3>

    <h4>E-Mail-Adresse: ' . $email . '</h4>

    <h2>Betreff: ' . $subject . '</h2>

    <p>' . nl2br($message) . '</p>'; // Inhalt der Email

    /**

    * Überprüfung, ob Mail abgesendet wurde, wenn nicht: Fehlermeldung ausgeben, wenn ja: Erfolgsmeldung ausgeben

    */

    if (!$mailer->send()) {

    $errors[] = HTML_ERROR_START . 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es in ein paar Minuten nochmal!' . HTML_ERROR_END;

    } else {

    $success = HTML_SUCCESS_START . 'Ihre Nachricht wurde erfolgreich abgesendet!' . HTML_SUCCESS_END;

    }

    }

    }


    kontaktformular.php


    <?php

    require_once 'PHPMailer/datenUeberpruefung.php';

    ?>

    <!DOCTYPE html>

    <html lang="de">

    <head> <title>PHP Kontaktformular</title>

    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    </head>

    <body>

    <div class="container">

    <form action="" method="post" class="py-5">

    <div class="form-group">

    <label for="name">Name</label>

    <input type="text" name="name" class="form-control" id="name" placeholder="Name" value="<?php echo !empty($name) ? $name : '' ?>">

    </div> <div class="form-group">

    <label for="email">E-Mail</label>

    <input type="email" name="email" class="form-control" id="email" placeholder="E-Mail" value="<?php echo !empty($email) ? $email : '' ?>">

    </div> <div class="form-group">

    <label for="subject">Betreff</label>

    <input type="text" name="subject" class="form-control" id="subject" placeholder="Betreff" value="<?php echo !empty($subject) ? $subject : '' ?>">

    </div> <div class="form-group">

    <label for="message">Nachricht</label>

    <textarea class="form-control" name="message" id="message" rows="10"><?php echo !empty($message) ? $message : '' ?></textarea>

    </div> <!-- nur zum Testen -->

    <div class="form-group">

    <label for="receiver">E-Mail Empfänger</label>

    <input type="email" name="receiver" class="form-control" id="receiver" placeholder="Empfänger" value="<?php echo !empty($receiver) ? $receiver : '' ?>">

    </div> <input type="submit" name="submit" class="btn btn-primary" value="Senden">

    </form> <?php

    if (!empty($errors) && count($errors) > 0 && !$success) {

    echo implode('', $errors);

    } else if (!empty($success) && count($errors) === 0) {

    echo $success;

    }

    ?>

    </div>

    </body>

    </html>


    Verzeichnis-Baum:
    Siehe jpg.Anhang


    Ich hoffe ich habe das alles richtig zur Verfügung gestellt.


    LGbaum.jpg

    fehler.pngBritta


    Hallo,

    Stef : Danke danke danke!!!

    Jetzt weiß ich Bescheid, so habe ich es auch bereits probiert.

    Aber leider funktioniert es noch nicht. Ich laufe eine weiße Seite ohne Fehlermeldung o. ä. und die Mail wird auch nicht versendet.


    By the way, mir ist in dem Code aufgefallen das die PHP Datei Datenüberprüfung nicht mit ?> abgeschlossen wird. Ist das korrekt? Kenne es ja aus dem html das alles "ein Ende" haben muss.


    Die beiden Links zum lernen habe ich bereits gesichtet. Durch Arne bin ich hierher gekommen, sorry für die Nerverei :S.

    Sodele, nochmal Danke. Werde jetzt weiter probieren und euch bei Gelegenheit mitteilen ob es funzt.


    LG Britta

    Wie wäre es denn mit Grundlagen lernen?

    Gerne, ich habe ein 600-Seiten Buch neben mir liegen. Leider werden darin Befehle in erster Linie für Rechenaufgaben beschrieben und nicht für simple Formulare. Ich habe u. a. ja auch gefragt ob ihr mir was empfehlen könnt. Bin ja bereit mir noch was beizubringen. Also, könnt ihr? Ansonsten sagt einfach nein und ich lese das Buch halt zum 3.Mal.

    $ ist ein Initiator für Variablen in PHP.

    D.h. weglassen da meine email-Adresse ja keine Variable ist? Och kommt schon, könnt ihr mir nicht einfach sage ob ja oder nein? ;(

    Das $-Zeichen kommt nur vor Variablen, soweit verstanden. Könnt ihr mir etwas empfehlen wo ich PHP leicht erlernen kann? Ich meine ohne gleich ein Studium abzulegen. html ist ja ein Babyfu... dagegen. :D

    Danke Stef das Du mir überhaupt antwortest.

    Also, ich trage das statt "receiver" ein, richtig? Oje, mit oder ohne $ davor. Ich kapiere nicht wo die Befehle durch feste Eingaben ersetzt werden müssen. Ich sag ja: PHP-Niete!

    Ich bin euch echt dankbar für diese Tutorials, habe monatelang nach einer Lösung gesucht ein einfachen Formular zu fertigen das auch noch dem heutigen Standard einigermaßen gleichkommt.


    Danke nochmal

    LG Nudelmaus

    Hallo Ihr Könner,

    leider blick ich doch nicht durch. Bin wohl doch eher der html-Schmieder. ;(

    Könnt ihr mir bitte sagen wo ich meine Empfänger-Addi eintragen muss. Ich hab schon so viel ausprobiert, mir raucht der Kopf. Leider komme ich mit php überhaupt nicht klar. Das sind alles bömische Dörfer. Ich brauche es aber für Kontakt und andere Formulare. Oder könnt ihr mir etwas empfehlen wo ich es leicht erlernen kann? Möchte meine Webseite endlich mit einem anständigen Formular ausstatten.


    Vielen Dank im Voraus.

    Britta

    DANKE, endlich mal ein Tut. bei dem einem nicht nach 1 Minute schon der Kopf raucht und man nur noch Bahnhof versteht! Ich versuche seit ca. 2 Monaten mir selber PHP anzueignen um auf meinen Webseiten anständige Kontakt- und andere Formulare abgeben zu können. Habe mir fast alle Video auf YT angeschaut und schon einen kleinen Kurs mitgemacht. Leider sind die "Lehrer" beim Kontaktformular immer wieder davongetanzt und haben dann z. B. ein Log-In gezeigt. Mal eine Frage an diese "Lehrer": Könnt ihr nicht einfach sagen so macht man das. Nein, da geht es einem eher wie früher in der Schule, Rechnen mit 5 Unbekannten - kein Problem; einfacher 3-Satz - "6, setzen".


    Also einfach nochmal Danke für dieses sehr gut erklärte und klar definierte Tutorial. Jetzt versteh selbst ich es, glaube ich :-)) :S