Antworten auf deine Fragen:
Neues Thema erstellen

Kontaktformular kommt nicht an

Foos

Member

Hallo,

ich brauche eure Hilfe, ich werd hier noch verrückt.

Habe für einen Bekannten eine Seite gebaut. Läuft alles einwandfrei.
Aber jetzt spinnt das Kontaktformular, das am Anfang schon mal lief. :)

Die Seite hab ich hier: http://bit.ly/2orgzWk

Wie dem Quellcode zu entnehmen läuft das dann zur contact.php (liegt im entsprechenden Verzeichnis)

Die Contact.php sieht so aus:

PHP:
<?php
$name = $_POST['form-contact-name'];
$email = $_POST['form-contact-email'];
$telefon = $_POST['form-contact-telefon'];
$message = $_POST['form-contact-message'];

$to = 'meine@mailisthier.de‘;
$subject = 'Nachricht von Seite';

$body = "";
$body .= "Name: ";
$body .= $name;
$body .= "\n\n";

$body .= "";
$body .= "Nachricht: ";
$body .= $message;
$body .= "\n";

$body .= "";
$body .= "Telefon: ";
$body .= $telefon;
$body .= "\n";

$headers = 'From: ' .$email . "\r\n";

//$headers = 'From: noreply@domain.com' . "\r\n";

//$body .= "";
//$body .= "Email: ";
//$body .= $email;
//$body .= "\n";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mail($to, $subject, $body, $headers);
echo '<span id="valid">Your Email was sent!</span>';
}else{
echo '<span id="invalid">Your message cannot be sent.</span>';
}

Wäre der Knaller, wenn sich Hilfe findet. DANKE schon mal...
 

Foos

Member

Jetzt gibt es noch ein kleines Problem. :)

Und zwar sind in der E-Mail die bei mir ankommt alle Umlaute ganz komisch dargestellt.

Ein "ü" ist z.B. ein Buchstabe, den ich hier gar nicht schreiben kann.

Jemand eine Idee? :)
 

noltehans

Aktives Mitglied

Jetzt gibt es noch ein kleines Problem. :)

Und zwar sind in der E-Mail die bei mir ankommt alle Umlaute ganz komisch dargestellt.

Ein "ü" ist z.B. ein Buchstabe, den ich hier gar nicht schreiben kann.

Jemand eine Idee? :)

Hi Foos,

Stichwort: UTF-8.

Hast du die contact.php selbst geschrieben, oder einen Generator verwendet.
Ich bin nämlich auf der Suche nach einem Formular-Generator.
 

Foos

Member

Danke für die UTF-Info.

Hab jetzt mal anhand von Tutorials das UTF-8 hinzugefügt (fett markiert), aber jetzt kommt leider keine Mail mehr an. :(


Code:
<?php
$name = $_POST['form-contact-name'];
$email = $_POST['form-contact-email'];
$telefon = $_POST['form-contact-telefon'];
$message = $_POST['form-contact-message'];

$to = 'meinemail';
$subject = 'Nachricht';

$body = "";
$body .= "Name: ";
$body .= $name;
$body .= "\n\n";

$body .= "";
$body .= "Nachricht: ";
$body .= $message;
$body .= "\n";

$body .= "";
$body .= "Telefon: ";
$body .= $telefon;
$body .= "\n";

$headers = 'From: ' .$email . "\r\n";
$headers = "MIME-Version: 1.0";
$headers = "Content-type: text/plain; charset=utf-8";

//$headers = 'From: noreply@domain.com' . "\r\n";

//$body .= "";
//$body .= "Email: ";
//$body .= $email;
//$body .= "\n";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mail($to, $subject, $body, $headers);
echo '<span id="valid">Ihre E-Mail wurde erfolgreich gesendet!</span>';
}else{
echo '<span id="invalid">Ihre Nachricht konnte leider nicht gesendet werden.</span>';
}
 
G

Gelöschtes Mitglied 633957

Guest

aber jetzt kommt leider keine Mail mehr an
Möglicherweise verhindert der Server das Senden von Nachrichten ohne Absender und ersetzt die Adresse nicht durch einen Standard. Du überschreibst Deine headers-Variable zweimal, möchtest aber Inhalt hinzufügen! Nutze ".=" anstelle von "=".

Persönlich würde ich in diesem Fall ISO anstelle von UTF nutzen. Schaue mal ob Dir folgendes weiterhilft:
PHP:
$headers = 'From: ' .$email . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
 

noltehans

Aktives Mitglied

Hi Foos,

wenn du charset=utf-8" einbaust, mußt du auch in utf-8 abspeichern.
Ich weiß jetzt leider nicht welchen Editor du benutzt, vielleicht unter Format?
Irgendwo ist eine Liste (utf-8, utf-16, ansi, isoxxx usw.)
Oder du machst es wie tynick vorgeschlagen hat.

Hast du einen Generator benutzt oder per Hand geschrieben?
 

Foos

Member

Möglicherweise verhindert der Server das Senden von Nachrichten ohne Absender und ersetzt die Adresse nicht durch einen Standard. Du überschreibst Deine headers-Variable zweimal, möchtest aber Inhalt hinzufügen! Nutze ".=" anstelle von "=".

Persönlich würde ich in diesem Fall ISO anstelle von UTF nutzen. Schaue mal ob Dir folgendes weiterhilft:
PHP:
$headers = 'From: ' .$email . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";

Sau geil. Klappt perfekt!! Danke.
Kannst du dir erklären, warum man über dem Kontaktformular die dortigen E-Mail Adressen der Ansprechpartner nicht anklicken kann? Das ist nur so, wenn das Formular eingebaut ist? :)
 
G

Gelöschtes Mitglied 633957

Guest

Kannst du dir erklären, warum man über dem Kontaktformular die dortigen E-Mail Adressen der Ansprechpartner nicht anklicken kann? Das ist nur so, wenn das Formular eingebaut ist? :)
Magst Du das noch einmal genauer erklären? Grübel schon eine Weile und komme einfach nicht darauf was Du meinst!
Welche eMail Adressen sind wo nicht klickbar? In der gesendeten E-Mail?
 

Foos

Member

Na klar. Sehr gerne.

Das Problem hat direkt nichts mit dem Formular zu tun.

Über dem Formular sind ja diese 4 Ansprechpartner mit jeweils einer Mail. Und diese lassen sich auf dem Desktop nicht klicken als wäre ein unsichtbarer Container darüber.

Wenn ich nämlich den Bereich mit dem Formular raus nehme dann funktionieren die links der Mails auch.
 
G

Gelöschtes Mitglied 633957

Guest

Der Header der "form"-Section überlagert die "about us"-Section. Die "form"-Section in eine div zu packen (so wie die "about us"-Section) könnte Abhilfe schaffen, wenigstens auf den ersten Blick! Bitte nehme es mir nicht übel, doch ich bin gerade am basteln meiner privaten Website und habe den Kopf mit eigenem Code voll und diese Tage nicht die Muße, genauer in andere Quellcodes einzutauchen!
 

Foos

Member

Kein Stress @tynick - Danke jedenfalls.

Jetzt ist mir doch noch was aufgefallen beim Formular, bzw. der ankommenden Mail. Also nochmal, so sieht der Code jetzt aus, der eine funktionierende Mail sendet:

PHP:
<?php
$name = $_POST['form-contact-name'];
$email = $_POST['form-contact-email'];
$telefon = $_POST['form-contact-telefon'];
$message = $_POST['form-contact-message'];

$to = 'info@meinserver.de';
$subject = 'Nachricht von der Website';

$body = "";
$body .= "Name: ";
$body .= $name;
$body .= "\n\n";

$body .= "";
$body .= "Nachricht: ";
$body .= $message;
$body .= "\n";

$body .= "";
$body .= "Telefon: ";
$body .= $telefon;
$body .= "\n";

$headers = 'From: ' .$email . "\r\n";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers = "Content-type: text/plain; charset=utf-8";

//$headers = 'From: noreply@domain.com' . "\r\n";

//$body .= "";
//$body .= "Email: ";
//$body .= $email;
//$body .= "\n";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
mail($to, $subject, $body, $headers);
echo '<span id="valid">Ihre E-Mail wurde erfolgreich gesendet!</span>';
}else{
echo '<span id="invalid">Ihre Nachricht konnte leider nicht gesendet werden.</span>';
}


Sobald ich den Bereich

PHP:
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers = "Content-type: text/plain; charset=utf-8";

einfüge, steht bei mir nicht mehr der "Absender" im Mailprogramm sondern nur noch "Apache" (Der Server). Das nervt mich noch. Kann man das umgehen? :)
 
G

Gelöschtes Mitglied 633957

Guest

Kann man das umgehen? :)
Ja, indem Du bei $headers #2 und #3 einen Punkt (.) vor das Gleichheitszeichen (=) setzt!!!
PHP:
$headers = 'From: ' .$email . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
Soll es denn jetzt doch UTF-8 sein?
 
Zuletzt bearbeitet von einem Moderator:

Foos

Member

Ja, indem Du bei $headers #2 und #3 einen Punkt (.) vor das Gleichheitszeichen (=) setzt!!!
PHP:
$headers = 'From: ' .$email . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
Soll es denn jetzt doch UTF-8 sein?


Der Wahnsinn! Jetzt läuft alles wie gewünscht. Herzlichen Dank <3
 
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