PHP 脚本有错误,但没有任何显示


PHP script has an error but nothing shows

嘿,我现在将脚本更改为这样阅读,但是现在当我单击go按钮时,它只显示一个空白的白色屏幕html正在工作,因为正在按下go按钮:

    <?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>

感谢您的帮助!

你从不定义$mail,所以你最终的if()测试是完全没有意义的。

$mail = mail(...);
^^^^^^^--- need this
if ($mail) { ... } else { ... }

一般提示:切勿使用 @ 错误抑制运算符,尤其是在遇到问题时。这相当于将手指伸进耳朵并说"lalala 听不到你 lalal"。

你的if语句包含一个错误的||所以if试图评估对died的调用是真还是假(意味着died总是被运行)

改变:

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.');

拳头:邮件功能仅在SMTP服务器安装的计算机中工作。可能是你跳过了它。

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

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

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