PHP /联系人表单不正确无法正常运行

时间:2014-04-15 17:54:45

标签: php contact-form

所以,我现在正在尝试使用我所掌握的PHP知识编写一个联系表单,不用说,它失败了。我已经远远地搜索了其余的互联网,而且仅仅通过从论坛收集信息我无法获得任何答案。

因此,我来​​找你们帮忙。这是表单代码:

                <form method="post" action="contactphp.php">
                    <label>First Name</label>
                    <input name="firstname" placeholder="Type Here">
                    <label>Last Name</label>
                    <input name="lastname" placeholder="Type Here">
                    <label>Company</label>
                    <input name="company" placeholder="Type Here">
                    <label>Project</label>
                    <input name="project" placeholder="Type Here">
                    <label>City</label>
                    <input name="city" placeholder="Type Here">
                    <label>Country</label>
                    <select id="countries" name="country">
                        </select>
                    <label>Email</label>
                    <input name="email" placeholder="Type Here">
                    <label>Phone</label>
                    <input name="phone" placeholder="Type Here">
                    <label>Subject</label>
                    <input name="subject" placeholder="Type Here">
                    <label>Inquiry</label>
                    <textarea name="inquiry" placeholder="Please voice your inquiry(ies) here."></textarea>
                    <button name="submit" type="submit" value="submit">SUBMIT</button>
                </form>

我明白需要;我省略了它们,因为它们列出了世界上所有的国家,这是关于这个问题的很多毫无意义的信息。

以下是页面后面的PHP代码:

                <?php
                    $firstname = $_POST['firstname'];
                    $lastname = $_POST['lastname'];
                    $company = $_POST['company'];
                    $project = $_POST['project'];
                    $city = $_POST['city'];
                    $country = $_POST['country'];
                    $email = $_POST['email'];
                    $phone = $_POST['phone'];
                    $subject= $_POST['subject'];
                    $inquiry = $_POST['inquiry'];
                    $from = "From: $firstname $lastname representing $company";
                    $to = "dummyemail@gmail.com";
                    $subject= "INQUIRY, $subject";
                    $body = "From: $firstname $lastname\n Company: $company\n Project: $project\n City: $city, Country: $country\n Email: $email, Phone: $phone\n Message: \n $inquiry";

                    if ($_POST['submit']) {
                        if ($firstname === "" || $lastname === "" || $city === "" || $country === "NIL" || $email === "" || $phone === "" || $subject === "" || $inquiry === ""){
                            return false;
                        }
                        else{
                            if (mail ($to, $subject, $body, $from)){
                             <p> Your message has been sent successfully!</p>
                            }
                            else{
                             <p>Your message has failed to send; please check all fields of the form to make sure it is filled out correctly.</p>
                            }

                        }
                    }
                ?>

同样,如果有一些明显愚蠢的错误,请原谅;我只是拼凑我知道的语法来形成这个脚本。

此外,如果您在那里回答需要更多信息,请随时发布。

其他信息:

服务器目前配备了PHP 5.4.27,并且处于正常工作状态(我下载了测试页并尝试使用它;它记录了所有必要的信息)。

我们在一个Linux机器上,因为Windows显然不足以满足文件权限等等(基于我所说的)。

感谢所有帮助人员。

1 个答案:

答案 0 :(得分:0)

您的邮件是否未发送或您的$_POST[]变量未填充?无论哪种方式,这里有几个可能的解决方案/调试选项:

首先,不要通过if($firstname === '')等检查值...我会这样做,因为你声明变量如:

if(!isset($_POST['firstname'])) { echo "Please enter your first name"; } else { $firstname = $_POST['firstname']; }

在您的问题中,您说您包含的PHP代码位于页面下方...您的表单action属性设置为&#39; contactphp.php&#39; ...如果您的PHP代码在同一页面上,请尝试将action属性设置为<?php echo $_SERVER['PHP_SELF']; ?>

正如问题评论中所述,请尝试使用var_dump($_POST);查看从$_POST[]提交中收集的内容。

此外,通过将ini_set('display_errors',1);添加到文档顶部来设置PHP以显示任何错误。

您也可以尝试通过SMTP而不是PHP mail();功能发送邮件。