0

嘿,我现在将脚本更改为这样读取,但是现在当我单击 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>

感谢你的帮助!

4

4 回答 4

5

您从不定义$mail,因此您的最终if()测试完全没有意义。

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

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

一般提示:切勿使用@错误抑制运算符,尤其是在遇到问题时。这相当于把你的手指伸进耳朵里然后“拉拉拉拉听不到你拉拉拉拉拉”的编码。

于 2013-10-21T20:46:37.553 回答
1

您的 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.');
于 2013-10-21T20:46:01.937 回答
0

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

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

于 2013-10-21T20:50:42.650 回答
0

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

error_reporting(E_ALL);
ini_set('display_errors', '1');
于 2013-10-21T20:51:00.167 回答