Antworten auf deine Fragen:
Neues Thema erstellen

Keine Mail vom Kontaktformular

Foos

Member

Hallo,

ich habe bereits einen Freelancer beauftragt, der konnte mir auch nicht so recht weiterhelfen, darum stell ich euch meine Frage.

Ich hab keine richtige Ahnung von PHP und auf meiner Website ein Kontaktformular eingebaut bzw. einbauen lassen.

Sieht so aus auf meiner Kontaktseite:

HTML:
<form name="ajax-form" id="ajax-form" action="assets/mail-it.php" method="post">
                    <div class="eight columns">
                        <label for="name">
                            <span class="error" id="err-name">please enter name</span>
                        </label>
                        <input name="name" id="name" type="text"   placeholder="NAME: *"/>
                    </div>
                    <div class="eight columns">
                        <label for="email">
                            <span class="error" id="err-email">please enter e-mail</span>
                            <span class="error" id="err-emailvld">e-mail is not a valid format</span>
                        </label>
                        <input name="email" id="email" type="text"  placeholder="E-MAIL: *"/>
                    </div>
                    <div class="sixteen columns">
                        <label for="message"></label>
                        <textarea name="message" id="message" placeholder="NACHRICHT:"></textarea>
                    </div>
                    <div class="sixteen columns">
                        <div id="button-con"><button class="send_message" id="send"><span data-hover="Senden">Senden</span></button></div>
                    </div>
                    <div class="clear"></div>   
                    <div class="error text-align-center" id="err-form">Bitte füllen Sie alle Felder korrekt aus.</div>
                    <div class="error text-align-center" id="err-timedout">Fehler. Bitte schreiben Sie an info@domdesignonline.de</div>
                    <div class="error" id="err-state"></div>
                </form>

Das PhP Formular mail-it-php dazu sieht so aus:

PHP:
<?php

/* Code by David McKeown - craftedbydavid.com */
/* Editable entries are bellow */

$send_to = "info@domdesignonline.de";
$send_subject = "Ajax form ";



/*Be careful when editing below this line */

$f_name = cleanupentries($_POST["name"]);
$f_email = cleanupentries($_POST["email"]);
$f_message = cleanupentries($_POST["message"]);
$from_ip = $_SERVER['REMOTE_ADDR'];
$from_browser = $_SERVER['HTTP_USER_AGENT'];

function cleanupentries($entry) {
    $entry = trim($entry);
    $entry = stripslashes($entry);
    $entry = htmlspecialchars($entry);

    return $entry;
}

$message = "This email was submitted on " . date('m-d-Y') .
"\n\nName: " . $f_name .
"\n\nE-Mail: " . $f_email .
"\n\nMessage: \n" . $f_message .
"\n\n\nTechnical Details:\n" . $from_ip . "\n" . $from_browser;

$send_subject .= " - {$f_name}";

$headers = "From: " . $f_email . "\r\n" .
    "Reply-To: " . $f_email . "\r\n" .
    "X-Mailer: PHP/" . phpversion();

if (!$f_email) {
    echo "no email";
    exit;
}else if (!$f_name){
    echo "no name";
    exit;
}else{
    if (filter_var($f_email, FILTER_VALIDATE_EMAIL)) {
        mail($send_to, $send_subject, $message, $headers);
        echo "true";
    }else{
        echo "invalid email";
        exit;
    }
}

?>

Das funktioniert einwandfrei und sendet mir nach Sekunden eine Mail an meine Adresse.

--------------------------------------------

Jetzt aber das Problem. Ich habe das Formular jetzt ein wenig umbauen lassen, da ich auf einer Unterseite gerne ein Bestellformular (ähnlich dem oben genannten) hätte:

Das sieht so aus:
HTML:
<form name="ajax-form" id="ajax-form" action="assets/mail-it-2.php" method="post">
               
               
                    <div class="eight columns">
                        <label for="vorname">
                            <span class="error" id="err-vorname">please enter name</span>
                        </label>
                        <input name="vorname" id="vorname" type="text"   placeholder="VORNAME: *"/>
                    </div>
                   
                   
                  
                    <div class="eight columns">
                        <label for="name">
                            <span class="error" id="err-name">please enter name</span>
                        </label>
                        <input name="name" id="name" type="text"   placeholder="NAME: *"/>
                    </div>
                   
                   
                   
                    <div class="eight columns">
                        <label for="strasse">
                            <span class="error" id="err-strasse">please enter name</span>
                        </label>
                        <input name="strasse" id="strasse" type="text"   placeholder="STRASSE/HNR: *"/>
                    </div>
                   
                   
                  
                    <div class="eight columns">
                        <label for="ort">
                            <span class="error" id="err-ort">please enter name</span>
                        </label>
                        <input name="ort" id="ort" type="text"   placeholder="PLZ/Ort: *"/>
                    </div>
                   
                   
                    <div class="five columns">
                        <p>

<select name="select1" id="select1">
  <option value="">Farbe wählen...</option>
  <option value="weiß">weiß</option>
  <option value="schwarz">schwarz</option>
</select>
                       
                    </div>
                        <div class="five columns">
                        <p>

<select name="select2" id="select2">
  <option value="">Größe wählen...</option>
  <option value="S">S</option>
  <option value="M">M</option>
  <option value="L">L</option>
  <option value="XL">XL</option>
</select>
                       
                    </div>
                   
                        <div class="five columns">
                        <p>

<select name="select3" id="select3">
  <option value="">Stück...</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
   <option value="5">5</option>
</select>
                       
                    </div>
                   
                        <div class="sixteen columns">
                        <label for="email">
                            <span class="error" id="err-email">please enter name</span>
                        </label>
                        <input name="email" id="email" type="text"   placeholder="E-MAIL: *"/>
                    </div>
                   
               
                    <div class="sixteen columns">
                        <div id="button-con"><button  class="send_message" id="send"><span data-hover="Senden">Bestellen</span></button></div>
                    </div>
                    <div class="clear"></div>   
                    <div class="error text-align-center" id="err-form">Bitte füllen Sie alle Felder korrekt aus.</div>
                    <div class="error text-align-center" id="err-timedout">Fehler. Bitte schreiben Sie an info@domdesignonline.de</div>
                    <div class="error" id="err-state"></div>
                </form>

Der PHP Code dazu in der mail-it-2.php:

PHP:
<?php

/* Code by David McKeown - craftedbydavid.com */
/* Editable entries are bellow */

$send_to = "info@domdesignonline.de";
$send_subject = "Ajax form";



/*Be careful when editing below this line */

$f_name = cleanupentries($_POST["name"]);
$f_vorname = cleanupentries($_POST["vorname"]);
$f_strasse = cleanupentries($_POST["strasse"]);
$f_ort = cleanupentries($_POST["ort"]);
$f_select1 = cleanupentries($_POST["select1"]);
$f_select2 = cleanupentries($_POST["select2"]);
$f_select3 = cleanupentries($_POST["select3"]);
$f_email = $_POST["email"];
//$f_message = cleanupentries($_POST["message"]);
$f_message = "Some message";
$from_ip = $_SERVER['REMOTE_ADDR'];
$from_browser = $_SERVER['HTTP_USER_AGENT'];



function cleanupentries($entry) {
    $entry = trim($entry);
    $entry = stripslashes($entry);
    $entry = htmlspecialchars($entry);

    return $entry;
}

$message = "This email was submitted on " . date('m-d-Y') .
"\n\nName: " . $f_name .
"\n\nE-Mail: " . $f_email .
"\n\nMessage: \n" . $f_message .
"\n\n\nTechnical Details:\n" . $from_ip . "\n" . $from_browser;

$send_subject .= " - {$f_name}";

$headers = "From: " . $f_email . "\r\n" .
    "Reply-To: " . $f_email . "\r\n" .
    "X-Mailer: PHP/" . phpversion();

if (!$f_email) {
    echo "no email";
    exit;
}else if (!$f_name){
    echo "no name";
    exit;
}else{
    if (filter_var($f_email, FILTER_VALIDATE_EMAIL)) {
        mail($send_to, $send_subject, $message, $headers);
       
        echo "true";
    }else{
        echo "invalid email";
        exit;
    }
}

?>

Hier kommt einfach nichts an und ich hab kein Plan, was los ist.
Hat jemand ne Lösung? Ich weiß, es ist viel Code, aber ich hoffe ihr könnt mir helfen :)
 

hub

nicht ganz neu hier

Moin moin,
kann es schlicht und einfach daran liegen, das du einen relativen Pfad zu "mail-it-2.php" angibst und diese dadurch nicht gefunden wird?
HTML:
<form name="ajax-form" id="ajax-form" action="assets/mail-it-2.php" method="post">
Kommt denn so gar keine keine Fehlermeldung? Was wird denn nach dem Abschicken des Formulars überhaupt ausgegeben?

Gruß Ulli
 

Foos

Member

Hallo Ulli,

der Pfad passt.

Denn die "mail-it.php" liegt im gleichen Ordner wie die "mail-it-2.php"

Keine Fehlermeldung, nichts.
Also schon "Vielen Dank für die Nachricht blabla"

Aber keine Mail bei mir.
 

hub

nicht ganz neu hier

Moin,
dein Denkfehler bei deinem Scriptaufbau ist, das du davon ausgehst, ene Funktion könne überall stehen. In dem Fall nicht. Die Funktion ist zum Zeitpunkt ihres Aufrufes noch nicht bekannt. Setze sie einfach an den Anfang deines Scriptes:
PHP:
<?php

/* Code by David McKeown - craftedbydavid.com */
/* Editable entries are bellow */

function cleanupentries($entry) {
    $entry = trim ( $entry );
    $entry = stripslashes ( $entry );
    $entry = htmlspecialchars ( $entry );

    return $entry;
}
....

Das sollte schon reichen.

Gruß Ulli
 

Foos

Member

Habe das mal versucht und getauscht.
Leider keine Veränderung :(

Das beide meine php Dateien im gleichen Ordner liegen macht nichts aus oder?
 

hub

nicht ganz neu hier

Bist du sicher, das du diese Funktion an den Anfang geschoben hast? Check mal deine Mails. Mit meiner Adresse in send_to hat es problemlos funktioniert.

Gruß Ulli

Nochmal zum Kopieren ;)

PHP:
<?php

/* Code by David McKeown - craftedbydavid.com */
/* Editable entries are bellow */

function cleanupentries($entry) {
    $entry = trim ( $entry );
    $entry = stripslashes ( $entry );
    $entry = htmlspecialchars ( $entry );

    return $entry;
}


$send_to = "info@domdesignonline.de";
$send_subject = "Ajax form";

/* Be careful when editing below this line */

$f_name = cleanupentries ( $_POST ["name"] );
$f_vorname = cleanupentries ( $_POST ["vorname"] );
$f_strasse = cleanupentries ( $_POST ["strasse"] );
$f_ort = cleanupentries ( $_POST ["ort"] );
$f_select1 = cleanupentries ( $_POST ["select1"] );
$f_select2 = cleanupentries ( $_POST ["select2"] );
$f_select3 = cleanupentries ( $_POST ["select3"] );
$f_email = $_POST ["email"];
// $f_message = cleanupentries($_POST["message"]);
$f_message = "Some message";
$from_ip = $_SERVER ['REMOTE_ADDR'];
$from_browser = $_SERVER ['HTTP_USER_AGENT'];
$message = "This email was submitted on " . date ( 'm-d-Y' ) . "\n\nName: " . $f_name . "\n\nE-Mail: " . $f_email . "\n\nMessage: \n" . $f_message . "\n\n\nTechnical Details:\n" . $from_ip . "\n" . $from_browser;

$send_subject .= " - {$f_name}";

$headers = "From: " . $f_email . "\r\n" . "Reply-To: " . $f_email . "\r\n" . "X-Mailer: PHP/" . phpversion ();

if (! $f_email) {
    echo "no email";
    exit ();
} else if (! $f_name) {
    echo "no name";
    exit ();
} else {
    if (filter_var ( $f_email, FILTER_VALIDATE_EMAIL )) {
        mail ( $send_to, $send_subject, $message, $headers );
       
        echo "true";
    } else {
        echo "invalid email";
        exit ();
    }
}
 

Foos

Member

Ich dank dir schon sehr Ulli,

hab das jetzt so auf meinen Server geschmissen. Und es kommt wieder nix an.

Da aber bei dir was ankommt, müsste es doch an meinem Hoster liegen? oder wo soll sonst das Problem liegen? Ich dreh noch durch...

Mein Hoster ist Goneo und ich hab php 5.3
 

hub

nicht ganz neu hier

Das sollte alles passen.
Füge mal als erste Zeile folgendes ein:
PHP:
<?php
error_reporting(-1);
und ändere den Part wie folgt:
PHP:
    ...
    if (filter_var ( $f_email, FILTER_VALIDATE_EMAIL )) {
        if (mail ( $send_to, $send_subject, $message, $headers ))
        {
            echo "gesendet";
        } else
        {
            echo "das war nix";
        }
    } else {
    ...
Und sag mal, was er dann anzeigt. Ein Test hab ich mit deiner Mailadresse gemacht. Hast du die Mail bekommen? Wenn nicht, ist die Adresse wirklich richtig geschrieben?

Gruß Ulli
 

Foos

Member

Habe alles so eingefügt wie von dir beschrieben.

Es kommt nach dem "senden" trotzdem die Meldung "vielen dank für die nachricht" und sonst nichts.

Eine Mail von dir hab ich auch nicht erhalten und ja, die Mailadresse ist richtig.
 

Foos

Member

Problem wurde durch ein äußerst kompetentes Forenmitglied behoben. Lag an irgendeinem Problem mit Goneo. ich habs nicht so recht verstanden :)

Ich bedanke mich für Eure Hilfe und Anteilnahme :)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben