【发布时间】:2015-07-02 09:45:18
【问题描述】:
所以我用 HTML 为我们公司创建了一个联系页面,然后在提交时执行了一个单独的 mail.php 脚本。我还在联系页面 html 中添加了一个隐藏字段以减少垃圾邮件。我也有页面上的 jQuery 验证,效果很好。但我是 PHP 新手,目前正在努力在我的 PHP 脚本中添加服务器端验证的确切位置以及它应该采用的确切格式。在研究时,似乎有许多不同的方式来格式化代码,所以它有点混乱。
请帮助我更改或添加我需要在现有代码的上下文中添加的代码。所有表单字段是必需的。 HTML 代码是:
<form action="/submit.php" method="post">
<div>First Name:* <input type="text" name="firstname" required></div>
<div>Surname:* <input type="text" name="lastname" required></div>
<div>Email Address:* <input type="text" name="email" required></div>
<div>Telephone Number:* <input type="text" name="telephone" required></div>
<div class="antispam">Leave this empty: <input type="text" name="url">/div>
<div><textarea name="message" required></textarea></div>
<div><select name="enquiry" size="1" required>
<option value=""> Make a choice:
<option value="sales">Sales</option>
<option value="billing">Billing</option>
<option value="technical">Technical</option>
<option value="accounts">Accounts</option>
<option value="business">Business</option>
</select></div>
<div><input type="submit" value="Send" /></div>
</form>
PHP 是这样的
<?php
// if the url field is empty
if(isset($_POST['url']) && $_POST['url'] == ''){
$youremail = 'me@example.com';
$body = "This is the result of your contact form:
First Name: $_POST[firstname]
Last Name: $_POST[lastname]
E-Mail: $_POST[email]
Telephone: $_POST[telephone]
Message: $_POST[message]
Fav Fruit: $_POST[enquiry]";
if( $_POST['email'] && !preg_match( "/[\r\n]/", $_POST['email']) ) {
$headers = "From: $_POST[email]";
} else {
$headers = "From: $youremail";
}
mail($youremail, 'Contact Form', $body, $headers ); }
header('Location: http://www.example.com/message-sent/');
exit;
?>
我目前遇到的问题是,如果有人禁用了 jQuery,那么每个必填字段都需要进行一些服务器端验证。目前唯一的服务器端验证是应该留空的隐藏字段。
我假设我需要在靠近顶部的 PHP 代码中将所需的编码放置在我的电子邮件之前。我将如何正确格式化?
【问题讨论】:
标签: php forms validation contact