Contao Konferenz 2019 in Duisburg - Call for Papers
Ergebnis 1 bis 11 von 11

Thema: Nichtfunktionierendes Kontaktformular

  1. #1
    Alter Contao-Hase Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    1.481
    User beschenken
    Wunschliste

    Standard Nichtfunktionierendes Kontaktformular

    Hallo,

    ich habe hier einen Kunden, der sich ein template zugekauft hat (rein CSS, HTML5, JS, php, ...), welches nun soweit eingebaut wurde - aber ich bekomme das Kontaktformular nicht zum Laufen.

    index.html
    PHP-Code:
    <div id="contact-form">
                                        <
    form action="contact.php"  id="form" method="post" name="send">
                                            <
    div class="col-md-4">
                                                <
    input class="requiredField name" id="name" name="name" placeholder="Name" type="text">
                                            </
    div>
                                            <
    div class="col-md-4">
                                                <
    input class="requiredField email" id="email" name="email" placeholder="Email" type="text">
                                            </
    div>
                                            <
    div class="col-md-4">
                                                <
    input class="requiredField subject" id="subject" name="subject" placeholder="Betreff" type="text">
                                            </
    div>
                                            <
    div class="make-space">
                                                <
    textarea class="requiredField message" id="message" name="message" placeholder="Nachricht"></textarea>
                                            </
    div>
                                            <
    div>
                                                <
    button class="submit-button" id="submit" type="submit">Absenden</button>
                                            </
    div>
                                        </
    form
                                    </
    div
    contact.php
    PHP-Code:
    <?php 
    $errors 
    '';
    $myemail 'info@fokuspunkt.at';
    if(empty(
    $_POST['name'])  ||
       empty(
    $_POST['email']) ||
       empty(
    $_POST['subject']) ||
       empty(
    $_POST['message']))
    {
    $errors .= "\n Error: Required Field";
    }

    $name $_POST['name'];
    $email $_POST['email'];
    $subject $_POST['subject'];
    $message $_POST['message'];

    if (!
    eregi(
    "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
    $email))
    {
    $errors .= "\n Error: Invalid Email Address";
    }

    if( empty(
    $errors))
    {
    $to $myemail;
    $email_subject "$subject";
    $email_body "\n Name: $name \n Email: $email \n Subject: $subject \n Message: \n $message";
    $headers "From: $email";

    mail($to$email_subject$email_body$headers);
    }
    ?>
    und dann gibt's noch ein *.js Datei, die mit einigen Dingen gespickt ist - unter anderem der Punkt 'contact form'
    PHP-Code:
        $("form#form").on("submit", function() {
            $(
    "form#form .error").remove();
            var 
    = !1;
            if ($(
    ".requiredField").each(function() {
                    if (
    "" === jQuery.trim($(this).val())) $(this).prev("label").text(), $(this).parent().append('<span class="error">Bitte das Feld ausfüllen</span>'), $(this).addClass(
                        
    "inputError"), = !0;
                    else if ($(
    this).hasClass("email")) {
                        var 
    = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                        
    r.test(jQuery.trim($(this).val())) || ($(this).prev("label").text(), $(this).parent().append('<span class="error">keine korrekte Email-Adresse</span>'), $(this).addClass(
                            
    "inputError"), = !0);
                    }
                }), !
    s) {
                $(
    "form#form input.submit").fadeOut("normal", function() {
                    $(
    this).parent().append("");
                });
                var 
    = $(this).serialize();
                $.
    post($(this).attr("action"), r, function() {
                    $(
    "form#form").slideUp("fast", function() {
                        $(
    this).before('<div class="success">Ihre Nachricht wurde erfolgreich versendet.</div>');
                    });
                });
            }
            return !
    1;
        }); 
    Wenn ich mir die Zusammenhänge anschaue, dann sollte alles korrekt eingetragen sein und auch funktionieren - aber irgendetwas habe ich wohl übersehen oder verstehe ich nicht ... der Klick auf den <<button> bewirkt genau nichts - keine subscribe-message und auch keine email.

    Hat jemand den korrekten Blick, wo es haken könnte?
    Vielen Dank schon mal!

    Bemerkung: auf der Seite ist das Kontaktformular zur Zeit nicht eingeblendet ...
    Grüsse
    Bernhard


  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.173

    Standard

    1. Wieso verwendest Du nicht Contao für das Fromular (und dann auch Contaos Meachnismus zum Verschicken der Formulardaten per E-Mail)
    2. Das PHP-Skript: "Kannste schon so machen, ist halt ..." nicht so toll
    3. Was sagt die Entwickler-Lonsole des Browsers: wir contact.php aufgerufen?
    4. Was passiert, wenn Du contact.php direkt aufrufst. Ohne die Post-Parameter müsstest Du eine Fehlermeldung bekommen. Bekommst Du die?
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Urgestein Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    9.964
    User beschenken
    Wunschliste

    Standard

    Falls Du PHP 7.0 oder höher im Einsatz hast, Pech gehabt. Dein Script ist nicht PHP 7 kompatibel, die Funktion "eregi()" gibt es nicht mehr.
    Es sollten aber Fehlermeldungen irgendwo kommen (error.log vom Webserver zum Beispiel)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Alter Contao-Hase Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    1.481
    User beschenken
    Wunschliste

    Standard

    @BugBuster ... ja, ist 'ne php7 - OK, dann weiss ich schon mal, wo ich anpacken kann
    @fiedsch ... wie könnte ich das Contao-Formular verwenden, wenn ich Contao nicht installiert habe? Gibt's da 'ne Möglichkeit dazu? (Sofern es nicht eindeutig rauszulesen war: es handelt sich um ein Nicht-Contao-template - darum auch im OffTopic Forum)
    Grüsse
    Bernhard


  5. #5
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.173

    Standard

    Zitat Zitat von derRenner Beitrag anzeigen
    @fiedsch ... wie könnte ich das Contao-Formular verwenden, wenn ich Contao nicht installiert habe? Gibt's da 'ne Möglichkeit dazu? (Sofern es nicht eindeutig rauszulesen war: es handelt sich um ein Nicht-Contao-template - darum auch im OffTopic Forum)
    Sorry, das hatte ich nicht rausgelesen -- ich greife auf's Forum meist über "neue Beiträge" zu und schaue nicht wirklich, in welchem Unterforum ich dann bin.

    Wenn Du keine Contao-Installation hast, dann wir es mit dem Contao-Kontaktformular natürlich nichts.

    Neben dem eregi, das @bugbuster bereits erwähnt hat sehe ich bei der E-Mail-Validierung noch das Problem, daß bei der Top-Level-Domain [a-z]{2,3} also zwei oder drei Buchstaben werwartet werden. EWs gibt mittlerweile aber etliche längere TLD. Vielleicht hilft Dir als Alternative http://php.net/manual/de/filter.examples.validation.php
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  6. #6
    Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    3.977
    Partner-ID
    7421

    Standard

    Der Datenschutz hat m.E. auch etwas gegen den Formularversand per PHP.
    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.
    Immer dran denken: Contao-Check zum Testen der Servervoraussetzungen (Contao 2, Contao 3 und Contao 4) und zum Prüfen einer bestehenden Installation (bis Contao 3.5)

  7. #7
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.173

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Der Datenschutz hat m.E. auch etwas gegen den Formularversand per PHP.
    Du meinst "der übermittelten Daten per (unverschlüsselter) E-Mail"? Ich wüsste ansonsten nicht, inwiefern die verwendete Programmiersprache eine Rolle spielen würde. Und verarbeiten sollte man Formulardaten dürfen, sonst brauche ich erst gar kein Formular. Ich muss natürlich erklären, was und begründen, warum.
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  8. #8
    Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    3.977
    Partner-ID
    7421

    Standard

    @fiedsch Genau ich meine die unverschlüsselte Übermittlung der Daten bei Mailversand über PHP.
    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.
    Immer dran denken: Contao-Check zum Testen der Servervoraussetzungen (Contao 2, Contao 3 und Contao 4) und zum Prüfen einer bestehenden Installation (bis Contao 3.5)

  9. #9
    Alter Contao-Hase Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    1.481
    User beschenken
    Wunschliste

    Standard

    Das heisst, Daten werden trotz HTTPS bei einem php-Formular nicht verschlüsselt übermittelt? Oder wie genau darf ich das verstehen? Hast du Quellen, wo ich mir das mal nachlesen kann. Im Speziellen wie das anderswertig gelöst werden kann - also ohne php Scripts.

    Gesendet von meinem SM-G960F mit Tapatalk
    Grüsse
    Bernhard


  10. #10
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.173

    Standard

    Die Daten werden mit https an den Server verschlüsselt übertragen. Das Problem wäre dann der anschließende unverschlüsselte Versand dieser Daten per E-Mail! Mit welcher Programmiersprache das gemacht wird spielt dabei natürlich keine Rolle.
    Stammtisch Contao Bayern: http://www.contao-bayern.de

  11. #11
    Contao-Nutzer
    Registriert seit
    30.12.2010.
    Beiträge
    208

    Standard

    Das Formular selbst dürfte bzgl. Sicherheit so auch nicht in Ordnung sein (Header-Injection). So bitte nicht verkaufen.
    Gruß CeeKay

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •