PHP脚本有错误但没有显示

时间:2013-10-21 20:43:18

标签: php

嘿所有我改变了脚本现在这样读了但是现在当我点击go按钮时它只显示一个空白的白色屏幕当按下go按钮时html正在工作:

    <?php

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

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "nishantrama@gmail.com";
$email_subject = "Sva Sva Spa Salon Coming Soon Notify Email";


function died($error) {
    // your error code can go here
    echo "We are very sorry, but there were error(s) found with the form you submitted. ";
    echo "These errors appear below.<br /><br />";
    echo $error."<br /><br />";
    echo "Please go back and fix these errors.<br /><br />";
    die();
}

// validation expected data exists
if (!isset($_POST['email'])
    died('We are sorry, but there appears to be a problem with the form you submitted.'));       


$email_from = $_POST['email']; // required

$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
    if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />';
    }

$email_message = "Form details below.\n\n";

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message .= "Email: ".clean_string($email_from)."\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);

 }
 ?>

  !-- include your own success html here -->

Thank you for contacting us. We will be in touch with you soon to let you know when      
the new website will be up and running.
To go back to the home page click <a href="http://www.svaspasalon.com">Here</a>

 <?php
  ?>

 MY FORM HTML:
  <form name="contactform" method="post" action="contact.php">
            <input  type="text"  name="email" placeholder="Provide    
   EMAIL for Reminder" maxlength="80" size="30">
            <input type="submit" class="go" value="">       
        </form>

感谢您的帮助!

4 个答案:

答案 0 :(得分:5)

您永远不会定义$mail,因此您的最终if()测试完全毫无意义。

$mail = mail(...);
^^^^^^^--- need this

if ($mail) { ... } else { ... }

一般提示:从不使用@错误抑制运算符,尤其是遇到问题时。它的编码相当于将手指贴在耳朵上并且“lalalalala听不到lalalalalalal”。

答案 1 :(得分:1)

您的if语句包含错误||,因此if正在尝试将对died的调用评估为真或假(意味着died 始终< / em>运行)

变化:

if (!isset($_POST['email']) ||
    died('We are sorry, but there appears to be a problem with the form you submitted.')
) ;

if (!isset($_POST['email'])
    died('We are sorry, but there appears to be a problem with the form you submitted.');

答案 2 :(得分:0)

拳头:邮件功能只能运行smtp服务器安装的机器。可能是你跳过了它。

第二:你确实使用过@mail。 @符号钝化邮件功能错误。

答案 3 :(得分:0)

要查看错误,请将其置于顶部(在将代码投入生产之前将其删除!):

error_reporting(E_ALL);
ini_set('display_errors', '1');