PHP-mailer zu senden, einfach Kontakt-Formular
Ich habe versucht, verwenden Sie die Funktion mail() mit PHP, aber kann nicht scheinen, um eine Nachricht zu senden an meine E-Mail-Adresse, wenn ich test das Kontakt-Formular. Es geht einfach um einen weißen Bildschirm und nicht weiter.. Es zeigt noch lange nicht den Erfolg Nachricht darunter.
Dies ist die PHP:
<?php
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$address = $_POST['address'];
$number = $_POST['number'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = 'Message from Reef website';
$to = '[email protected]';
if (empty($name) || empty($address) || empty($number) || empty($email) || empty($subject) || empty($message)) {
if (empty($name))
$error['name'] = "Please enter your Full Name";
if (empty($name))
$error['address'] = "Please enter your address";
if (empty($name))
$error['number'] = "Please enter a contact number";
if (empty($email))
$error['email'] = "Please enter a valid Email Address";
if (empty($message))
$error['message'] = "Please write a message, enquiries or other concerns above";
}
else { //if not empty
$headers="From: {$email}\r\nReply-To: {$email}";
mail($to,$subject,$message,$headers);
$success = "Thank you! You're email has been sent.";
}
}
?>
Dies ist mein HTML-Formular:
<form method="POST" action="mailer.php">
<table border="1">
<tr>
<td><label for="name" class="g">Name</label></td>
<td><input id="name" name="name" type="text" required autofocus></td>
</tr>
<tr>
<td><label for="address" class="g">Address</label></td>
<td><textarea rows="3" id="address" name="address" cols="50"></textarea></td>
</tr>
<tr>
<td><label for="number" class="g">Contact number</label></td>
<td><input id="number" name="text" type="text" required autofocus></td>
</tr>
<tr>
<td><label for="email" class="g">Email</label></td>
<td><input id="email" name="email" type="text" placeholder="[email protected]" required autofocus></td>
</tr>
<tr>
<td><label for="message" class="g">Enquiry</label></td>
<td><textarea rows="3" id="message" name="message" cols="50"></textarea></td>
</tr>
</table>
<input type="submit" value="Submit" name="submit">
</form>
Kann jemand sehen, was fehlt? Ein Blick auf andere ähnliche Fragen, es sind alle wie meine, aber Sie sagen, dass Sie funktionieren.
- Das ist, weil Sie nicht als echo jeder der Fehler..echo Ihnen werden Sie wissen, was der Fehler ist..
- Verwenden error_reporting(e_all); in die erste Zeile und geben Sie uns die Fehler
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Grund, dass es wird eine leere Seite ist, dass die PHP-Seite ist leer! Sie scheinen nicht zu werden, während der Erfolg Nachricht irgendwo auf der Seite.
Ich würde empfehlen, verändern Ihre form, so dass der HTML-Code wie folgt:
Und fügen Sie die PHP in den oberen Teil dieser Seite. Denken Sie daran, die Seite zu geben .php anstatt .html/.htm
Schließlich fügen Sie ein echo an der Spitze der form, so die Erfolgsmeldung angezeigt wird, entlang der Linien von
Ändern
zu
ändern sich auch Ihre ifs-weil Sie check nur eine variable
immer $name
setzen Sie in Ihrer ersten Linie für debugging:
warum verwenden Sie "id" ist es für Sie notwendig?
Sind Sie mit
$name
in jedemif
- Anweisung. Ändern Sie es mit den entsprechenden Variablen.UND
Ändern
<input id="number" name="text" type="text" required autofocus>
Zu
<input id="number" name="number" type="text" required autofocus>
Ich denke, Sie haben es. Prüfen Sie
empty($number)
im übergeordnetenif
Aussage, die immertrue
, Und Sie sind nicht immer keine Nachricht wegen der falschen variable ($name
).Was sind die SMTP-server-Einstellungen in Ihrer php.ini-Datei? Sie müssen einen SMTP-server mit E-mail zu senden.
Eine einfachere Lösung wäre die Verwendung PHPMailer.
Haben Sie ein problem
Den Sie zugreifen möchten Anzahl Wert wie diese
aber in Ihrer form name="text"
so ändern Sie die Formular-Feld-zu diesem
verursacht wurde, Ihre Validierung zu scheitern.
Denke ich, werden Sie nicht haben, legen Sie die SMTP-Daten in php.ini
Wenn Sie können, verwenden einige andere Bibliothek zum senden von E-mail wie https://github.com/Synchro/PHPMailer