Senden Sie E-Mail in wordpress
Ich versuche eine E-Mail senden mit PHP mail () - Funktion in ein wordpress-Website.
Ich habe eine leere Seite http://www.exam-vision.com/request-flip-up-instructions die Vorlage enthält den php-code gezeigt unten. Wenn ich die Daten posten, isset($_REQUEST['email']) false ist, während ich in firebug, dass die Daten gepostet wurden, richtig. Was kann falsch sein?
Dank
<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail( "<someemail>", "Subject: $subject",
$message, "From: $email" );
echo "Thank you for using our mail form";
}
else
//if "email" is not filled out, display the form
{
echo "<form method='post' action='http://www.exam-vision.com/request-flip-up-instructions'>
Email: <input name='email' type='text' /><br />
Subject: <input name='subject' type='text' /><br />
Message:<br />
<textarea name='message' rows='15' cols='40'>
</textarea><br />
<input type='submit' />
</form>";
}
?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt mit $REQUEST, nur mit $_POST, da die Seite posten, um sich selbst und sicher sein, zu überprüfen, ob es oder wenn es leer. Und anstatt über PHP 's mail () - Funktion verwenden WordPress' wp_mail Funktion.
Alternativ können Sie die Verwendung von plugins, um dies zu erreichen, wie gut. CformsII und Schwerkraft Formen (premium plugin) sind nur ein paar Beispiele. Ich habe CformsII und es ist ziemlich umfangreich und hat viele Features für ein kostenloses plugin.
Zwei Dinge: um Ihre aktuelle form, sollten Sie 1) überprüfen Sie mit Ihrem Gastgeber, um zu sehen, wenn Sie müssen, verwenden Sie smtp-Authentifizierung anstelle der Verwendung von php-mail, und 2) bereinigen Sie Ihre Eingabe: PHP Sichere E-mail.
Wenn Sie verwenden wollen ein WP-plugin für E-mail statt - was viele Vorteile hat, über den Aufbau Ihrer eigenen form - müssen Sie möglicherweise auch zu verwenden WP-Mail-SMTP « WordPress Plugins, um smtp verwenden anstatt php mail, wie Ihr Gastgeber wahrscheinlich ist die Einschränkung der Verwendung von php-mail.
Versuchen zu ändern
etwas wie
Tun Sie das gleiche mit allen Ihren Feldern, es klingt wie einige Namen, die reserviert sind mit WordPress beim senden von Formular-Daten. Ich habe das gleiche problem und ich fixe es so. Danach verwenden Sie die Methode POST und vielleicht schaffen ein do_action() zum hinzufügen der Feldüberprüfung. und verwenden
wp_mail
die E-Mail senden, auch$_POST['']