PHP电子邮件表单不处理?

时间:2014-04-21 10:55:10

标签: php html

我之前在联系页面上使用过php表单,但现在正在使用相同的文档并使用相同的文档,但是当我点击提交时它会转到空白页面。 我查看了我的上一页,但在代码中找不到任何差异,它让我发疯!我不是专业人士,只是挑战自己帮助我的妻子生意。

 <?php
    if(isset($_POST['email'])) {

    $email_to = "karly@kbwflowers.com.au";
    $email_subject = "Mothers Day Order Form";
    $arrangement = "";
    $your_name = "";
    $your_contact_number = "";
    $email_from = "";
    $mums_name = "";
        $mums_contact_number = "";
        $delivery_address = "";
        $delivery_suburb = "";
        $delivery_date = "";
        $card_message = "";
        $base = "";
        $payment_method = "";
    $total = "";

    $email_message .= "Your Name: ".clean_string($your_name)."\n";
    $email_message .= "Mums Name: ".clean_string($mums_name)."\n";
    $email_message .= "Email Address: ".clean_string($email_from)."\n";
    $email_message .= "Your Telephone: ".clean_string($your_contact_number)."\n";
    $email_message .= "Delivery Date: ".clean_string($delivery_date)."\n";
    $email_message .= "Mums Contact Number: ".clean_string($mums_contact_number)."\n";
    $email_message .= "Delivery Address: ".clean_string($delivery_address)."\n";
    $email_message .= "card_message: ".clean_string($card_message)."\n";
    $email_message .= "Delivery Suburb: ".clean_string($delivery_suburb)."\n";
    $email_message .= "Delivery Date: ".clean_string($delivery_date)."\n";
    $email_message .= "base: ".clean_string($base)."\n";
    $email_message .= "payment method: ".clean_string($payment_method)."\n";
    $email_message .= "Total: ".clean_string($total)."\n";


    // create email headers
    $headers = 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    @mail($email_to, $email_subject, $email_message, $headers);  
    ?>



    <!-- thank you for contacting us -->

    <?php
    }
    ?>

2 个答案:

答案 0 :(得分:0)

该网址下的html表单不包含名称为email

的任何输入

因此,if(isset($_POST['email'])) {永远不会成为现实,呈现空页。

尝试更改为

if(isset($_POST['email_from'])) {

  .... your code

}
else 
   echo "you haven't filled in the form properly ...";

此外:if(isset($_POST['email'])) {不会在缺失的索引上发出任何错误消息。这就是isset应该做的事情。

答案 1 :(得分:0)

如果我正确理解您的问题,那么页面提交时会出现错误并且屏幕显示为空白。

假设您已正确填写表格然后发布。

首先要收到错误,请将其放在页面顶部:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

这将帮助您获得确切的错误并解决问题。

猜测确切的错误,它是脚本页面中缺少的clean_string函数。由于无法查看所有代码以确认确切的错误。