我正在努力找出一个网站的电子邮件代码中的错误。这是一张预订表格,但我填写后无法发送信息。我还是PHP的新手,所以任何帮助都将不胜感激。提前谢谢你。
以下是PHP代码:
<?php
$err = '';
if(isset($_POST['submit'])){
$first = addslashes(trim($_POST['first']));
$last = addslashes(trim($_POST['last']));
$email = addslashes(trim($_POST['email']));
$date = addslashes(trim($_POST['date']));
$women = addslashes(trim($_POST['women']));
$men = addslashes(trim($_POST['men']));
$message = "Name: $name" . PHP_EOL;
$message .= "Phone: $phone" . PHP_EOL;
$message .= "Email: $email" . PHP_EOL;
$message .= "Date: $date" . PHP_EOL;
$message .= "Women: $women" . PHP_EOL;
$message .= "Men: $men" . PHP_EOL;
$header = "From: reservations@bryanlv.com";
mail("sales@pinnaclewebsitedesigns.com", "New Club Reservation", $message, $header);
header('location:thank-you.html');
} else {
if($name=='') $err.='<p style="color:red">Your Name is empty</p>';
if($phone=='') $err.='<p style="color:red">Your Phone is empty</p>';
if($email=='') $err.='<p style="color:red">Your E-mail is empty</p>';
if($date=='') $err.='<p style="color:red">Your Reservation Date is empty</p>';
if($women=='') $err.='<p style="color:red">Number of Women is empty</p>';
if($men=='') $err.='<p style="color:red">Number of Men is empty</p>';
}
?>
这是表格:
<form name="reservation" method="post" action="book.php">
<label>Name</label>
<input type="text" name="name" id="name" placeholder="name" />
<label>Phone</label>
<input type="text" name="phone" id="phone" placeholder="phone" />
<label>E-mail</label>
<input type="text" name="email" id="email" placeholder="email" />
<label>Date of Reservation </label>
<input type="date" name="date" id="date" placeholder="date" />
<label>Number of Women </label>
<input type="text" name="women" id="women" placeholder="women" />
<label>Number of Men </label>
<input type="text" name="men" id="men" placeholder="men" />
</label>
<br />
<button type="submit" class="btn btn-primary">Book now</button>
</form>
我知道一定是我错过了一些简单的东西。
删除if语句或添加
<input type=hidden name="submit" value ='1'>
到您的表单
php POST只是从表单中获取名称并检索值。你的表单没有名称为submit的元素,因此当你发布它时,它会返回false。。。然后,您使用了一个if-iset(),但它不是,因此没有执行任何代码。如果你在未来陷入困境,请在If语句中添加一个else,并回显"失败"
您正在使用
if(isset($_POST['submit'])){
但是没有具有submit
名称的表单元素,因此它不能满足if条件,您可以尝试替换这个
<button type="submit" class="btn btn-primary">Book now</button>
带有
<input type="submit" name="submit" class="btn btn-primary" value="Book now" />
非常简单。
使用if ($_SERVER['REQUEST_METHOD'] === 'POST') {
测试用户是否正在张贴表单。
我快速浏览了一下表格,结果是:
Array ( [name] => [phone] => [email] => [date] => [women] => [men] => )
与按钮无关,无论如何,这都是一种糟糕的检查方式。
简单更改:
if(isset($_POST['submit'])){
至:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
我仍然强烈反对使用提交按钮的名称。
请制作这样的系统:
<input type="hidden" name="type_of_post" value="register / login / what type of action">
您正在使用$name变量,但我在您的php文件中没有看到该设置。
除此之外,请提供错误消息-来自屏幕或您的apache日志(如果您当然使用apache)