Hallo liebe PHP.de Community ich habe mal ne Frage ich bin neu in PHP und auch HTML und wollte für eine Internetseite ein Kontaktformular machen das über PHP eine E-Mail ausgeben soll und die an meine E-Mail senden soll aber ich bekomme immer nur die Fehler Seite angezeigt aber da ich keinen Log finden kann was dort passiert ist frage ich einfach mal hier rum und ich hoffe einer von euch kann mir Helfen ich benutze Debian 9 mit Nginx,PHP 7 und MariaDB aber er will einfach die Nachricht nicht senden vielleicht fehlt mir auch einfach nur ein Paket was ich nachinstallieren muss aber ich weiß nicht welches aber es kann auch sein das einfach was mit dem Code nicht stimmt einfach mal rüber schauen und mir Feedback geben wäre echt toll.
send_email.php
index.html
ok.php
fehler.php
So das sind die Codes und wenn ihr euch selber überzeugen wollt dann geht einfach auf http://dev.xdsv.xyz/kontakt/
Sonst bedanke ich mich schon mal für jede Hilfe dich ich bekommen sollte
send_email.php
PHP-Code:
<?php
//send_email.php
$email_from = "admin@craftenmedia.net"; //Absender falls keiner angegeben wurde
$sendermail_antwort = true; //E-Mail Adresse des Besuchers als Absender. false= Nein ; true = Ja
$name_von_emailfeld = "E-Mail"; //Feld in der die Absenderadresse steht
$empfaenger = "admin@craftenmedia.net"; //Empfänger-Adresse
$mail_cc = ""; //CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
$betreff = "CraftenMedia.net - Kontaktanfrage"; //Betreff der Email
$url_ok = "http://dev.xdsv.xyz/kontakt/ok.php"; //Zielseite, wenn E-Mail erfolgreich versendet wurde
$url_fehler = "http://dev.xdsv.xyz/kontakt/fehler.php"; //Zielseite, wenn E-Mail nicht gesendet werden konnte
//Diese Felder werden nicht in der Mail stehen
$ignore_fields = array('submit');
//Datum, wann die Mail erstellt wurde
$name_tag = array();
$name_tag[0] = "Sonntag";
$name_tag[1] = "Montag";
$name_tag[2] = "Dienstag";
$name_tag[3] = "Mittwoch";
$name_tag[4] = "Donnerstag";
$name_tag[5] = "Freitag";
$name_tag[6] = "Samstag";
$num_tag = date("w");
$tag = $name_tag[$num_tag];
$jahr = date("Y");
$n = date("d");
$monat = date("m");
$time = date("H:i");
//Erste Zeile unserer Email
$msg = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n";
//Hier werden alle Eingabefelder abgefragt
while (list($name,$value) = each($_POST)) {
if (in_array($name, $ignore_fields)) {
continue; //Ignore Felder wird nicht in die Mail eingefügt
}
$msg .= "::: $name :::\n$value\n\n";
}
//E-Mail Adresse des Besuchers als Absender
if ($sendermail_antwort and isset($_POST[$name_von_emailfeld]) and filter_var($_POST[$name_von_emailfeld], FILTER_VALIDATE_EMAIL)) {
$email_from = $_POST[$name_von_emailfeld];
}
$header="From: $email_from";
if (!empty($mail_cc)) {
$header .= "\n";
$header .= "Cc: $mail_cc";
}
$mail_senden = mail($empfaenger,$betreff,$msg,$header);
//Weiterleitung, hier konnte jetzt per echo auch Ausgaben stehen
if($mail_senden){
header("Location: ".$url_ok); //Mail wurde gesendet
exit();
} else{
header("Location: ".$url_fehler); //Fehler beim Senden
exit();
}
HTML-Code:
<form method="post" action="/kontakt/send_email.php"> <label for="Name"><b>Name:</b></label><br> <input type="text" id="Name" name="Name"><br><br> <label for="Email"><b>E-Mail:</b></label><br> <input type="text" id="Email" name="Email"><br><br> <label for="Betreff"><b>Betreff:</b></label><br> <input type="text" id="Betreff" name="Betreff"><br><br> <label for="Nachricht"><b>Nachricht:</b></label><br> <textarea id="Nachricht" name="Nachricht" rows="10" cols="50"></textarea> <br><br> <input type="submit" name="submit"> </form>
PHP-Code:
<?php
echo "dev.xdsv.xyz/kontakt/ok.php";
?>
PHP-Code:
<?php
echo "dev.xdsv.xyz/kontakt/fehler.php";
?>
Sonst bedanke ich mich schon mal für jede Hilfe dich ich bekommen sollte
Kommentar