【发布时间】:2016-12-30 02:23:15
【问题描述】:
我有一个问题要问。
我有一个用户必须填写的表格。有几个字段有限制(例如名称不能为空)。问题是每次我按下提交按钮时,我都会弹出一个窗口,说名称不能为空,但它会自动重定向到另一个页面。所以问题是:如何修改我的代码以在重定向到页面或用户在外部单击或按 Tab 之前进行验证?
为了实现这一点,我使用 PHP、Contact Form 7 和 wordpress。 这是我的代码:
php函数createAccount.php
<?php
require_once('../../../wp-load.php');
include ('../../../wp-config.php');
global $wpdb;
$nameErr = "";
if(isset($_POST['next']))
{
$name=addslashes($_POST['cName']);
$surname=addslashes($_POST['cSurname']);
$email=addslashes($_POST['cEmail']);
$phone =addslashes($_POST['cPhone']);
$otherPhone=implode($_POST['cOtherPhone']);
$languages=implode(' | ', $_POST['cLanguages']);
$address=addslashes($_POST['cAddress']);
$neighborhood=$_POST['cNeighborhood'];
$pswd=addslashes($_POST['cPswd']);
$service=$_POST['cService'];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(empty($_POST["cName"])) {
$message = "wrong answer";
echo "<script type='text/javascript'>alert('$message');
</script>";
}
}else{
$wpdb->insert("Client",array(
"cName"=>$name,
"cSurname"=>$surname,
"cEmail"=>$email,
"cPhone"=>$phone,
"cOtherPhone"=>$otherPhone,
"cLanguages"=>$languages,
"cAddress"=>$address,
"cNeighborhood"=>$neighborhood,
"cPswd"=>$pswd,
"cService"=>$service
));
print_r("uq");
}
}
$wpdb->show_errors();
?>
联系表格 7 页面
<form action="/wp-content/plugins/my-codes/signUp.php" method="post">
[contact-form-7 id="422" title="Member Signup"]
</form>
联系表格
<p>Your Name (required)<br /> </p>
[text* cName id:cName]
<p>Your Surname (required)<br /> </p>
[text* cSurname id:cSurname]
<p>Your Email (required)<br /></p>
[email* cEmail id:cEmail]
<label> Your Telephone Number (required)
[tel* cPhone id:cPhone tel-106 placeholder "123 456 789"] </label>
<label> Other Telephone Number (required)
[tel* cOtherPhone id:cOtherPhone tel-106 placeholder "123 456 789"] </label>
<h3>What languages do your prefer?</h3>
<input id=cLanguages type="checkbox" name=cLanguages[] value="English">
<use_label_element for="check_14">English</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="Hebrew">
<use_label_element for="check_15">Hebrew</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="French">
<use_label_element for="check_16">French</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="Spanish">
<use_label_element for="check_17">Spanish</use_label_element>
<p>Your Address (required)<br /> </p>
[text* cAddress id:cAddress]
<select cNeighborhood id:cNeighborhood name=cNeighborhood>
<option value="Bat Yam">Bat Yam</option>
<option value="Raanana">Raanana</option>
</select>
<label> Create Password (required)
[text* cPswd id:cPswd] </label>
<label> Confirm Password (required)
[text* cPswd id:cPswd] </label>
<label> Pick a Service (required)</label>
<select cService id:cService name=cService>
<option value="Babysitter">Babysitter</option>
<option value="Cleaner">Cleaner</option>
</select>
<input type="submit" name="next">
有什么帮助吗?谢谢!
更新联系表
<form id="commentForm" action="/wp-content/plugins/my- codes/createAccount.php" method="post">
<p>Your Name (required)<br /> </p>
[text* cName id:cName]
<p>Your Surname (required)<br /> </p>
[text* cSurname id:cSurname]
<p>Your Email (required)<br /></p>
[email* cEmail id:cEmail]
<label> Your Telephone Number (required)
[tel* cPhone id:cPhone tel-106 placeholder "123 456 789"] </label>
<label> Other Telephone Number (required)
[tel* cOtherPhone id:cOtherPhone tel-106 placeholder "123 456 789"] </label>
<h3>What languages do your prefer?</h3>
<input id=cLanguages type="checkbox" name=cLanguages[] value="English">
<use_label_element for="check_14">English</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="Hebrew">
<use_label_element for="check_15">Hebrew</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="French">
<use_label_element for="check_16">French</use_label_element>
<input id=cLanguages type="checkbox" name=cLanguages[] value="Spanish">
<use_label_element for="check_17">Spanish</use_label_element>
<p>Your Address (required)<br /> </p>
[text* cAddress id:cAddress]
<select cNeighborhood id:cNeighborhood name=cNeighborhood>
<option value="Bat Yam">Bat Yam</option>
<option value="Raanana">Raanana</option>
</select>
<label> Create Password (required)
[text* cPswd id:cPswd] </label>
<label> Confirm Password (required)
[text* cPswd id:cPswd] </label>
<label> Pick a Service (required)</label>
<select cService id:cService name=cService>
<option value="Babysitter">Babysitter</option>
<option value="Cleaner">Cleaner</option>
</select>
<input type="submit" name="submit" value="Submit">
</form>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"> </script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.0/additional-methods.min.js"></script>
<script>
$("#commentForm").validate();
</script>
我想被重定向到
/wp-content/plugins/my-codes/createAccount.php
当我按下提交按钮时。
【问题讨论】:
-
你想使用客户端验证吗?
-
我认为是不是最好的选择?
-
有两种类型的验证:1.客户端 2.服务器端。你想要哪一个?
-
客户端,我什么都不需要去服务器。我只需要检查这些字段是否为空之类的东西
-
你仍然应该验证服务器端的所有数据,因为 JS 很容易被绕过。
标签: php wordpress forms validation contact-form-7