我有一个非常正常的表单,链接到我网站上的html页面中的简单php脚本。它看起来如下
<form id="main-contact-form" class="contact-form" name="contact-form" enctype="multipart/form-data" method="post" action="sendemail.php" role="form">
<div class="row">
<div class="col-sm-5">
<div class="form-group">
<input type="text" class="form-control" name="first_name" id="first_name" required="required" placeholder="First Name">
</div>
<div class="form-group">
<input type="text" class="form-control" name="last_name" id="last_name" required="required" placeholder="Last Name">
</div>
<div class="form-group">
<input type="text" class="form-control" name="email "id="email" required="required" placeholder="Email address">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-lg">Send Message</button>
</div>
</div>
<div class="col-sm-7">
<textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea>
</div>
</div>
</form>
这是发送电子邮件.php(表单数据的发送位置)。§ "成功", "消息"=>"电子邮件已发送! );
$first_name = @trim(stripslashes($_POST['first_name']));
$email = @trim(stripslashes($_POST['email']));
$last_name = @trim(stripslashes($_POST['last_name']));
$message = @trim(stripslashes($_POST['message']));
$subject = "A new ewnquiry from your website!";
$email_from = "jackb@example.com";
$email_to = 'jackb@example.com';
$body = 'Name: ' . $first_name . "'n'n" . 'Email: ' . $email . "'n'n" . 'Subject: ' . $subject . "'n'n" . 'Message: ' . $message;
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
echo json_encode($status);
die;
?>
电子邮件发送到正确的地址,并显示尚未从表单 ($subject) 传递的变量。
但是表单中的变量没有被传递。
任何人都可以帮我看看这个问题出在哪里。我是该网站的新手。
我提交这个答案是因为这是空值唯一可能发生的事情,如果这就是问题的内容。
如果。。。您将整个代码放在同一个文件中,即HTML表单和PHP,那么这将解释空值,我怀疑是空值。
因此,您需要检查是否有任何或全部留空(或不留空)。
所以你需要做这样的事情并使用条件!empty()
:
顺便说一下,您对应该$success
的echo json_encode($status);
使用了错误的变量,因为这会读作null
。
if(!empty($_POST['first_name'])
&& !empty($_POST['email'])
&& !empty($_POST['last_name'])
&& !empty($_POST['message'])
){
$first_name = @trim(stripslashes($_POST['first_name']));
$email = @trim(stripslashes($_POST['email']));
$last_name = @trim(stripslashes($_POST['last_name']));
$message = @trim(stripslashes($_POST['message']));
$subject = "A new ewnquiry from your website!";
$email_from = "email@example.com";
$email_to = 'email@example.com';
$body = 'Name: ' . $first_name . "'n'n" . 'Email: ' . $email . "'n'n" . 'Subject: ' . $subject . "'n'n" . 'Message: ' . $message;
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
echo json_encode($success);
die;
}
else{
echo "Something was left empty.";
}
顺便说一下,这已经成功测试了。
如果您愿意,您可以更换||
的&&
。
-
&&
=>AND
-
||
=>OR
.