所以,我现在正在尝试使用我所掌握的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显然不足以满足文件权限等等(基于我所说的)。
感谢所有帮助人员。
答案 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();
功能发送邮件。