0

我正在尝试找出我的网站电子邮件代码中的错误。这是用于预订的表格,但一旦填写,我就无法发送信息。我还是 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>

我知道它必须是一些简单的我想念的东西。

4

4 回答 4

2

删除 if 语句或添加

 <input type=hidden name="submit" value ='1'>

到你的表格

只是一点信息 php POST 从表单中获取名称并检索值。您的表单没有名称为 submit 的元素,因此当您发布它时它返回 false ......然后您使用了 if isset() 它不是,因此没有执行任何代码。如果您将来陷入困境,请在 if 语句中添加 else 并回显“失败”

于 2013-07-15T05:24:15.557 回答
1

您正在使用

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" />
于 2013-07-15T05:21:02.407 回答
1

很简单。

用于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">
于 2013-07-15T05:21:08.957 回答
0

您正在使用 $name 变量,但我没有在您的 php 文件中看到该设置。

除此之外,请提供错误消息-来自屏幕或您的 apache 日志(当然,如果您使用 apache)

于 2013-07-15T05:22:39.160 回答