我需要更改变量$destination
的值以帮助验证表单。如果表单中没有任何字段,页面将刷新并显示错误消息,哪个有效。如果字段全部填写,则$destination
值应更改,并打印消息'it works!'
。但是,如果填写了所有字段并且用户提交了表单,则会打印消息'it works!'
,但$destination
的值仍设置为'this-page'
。我在这里缺少什么?
$destination = '';
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
if (!$fname OR !$lname OR !$email OR !$phone) {
print 'Please fill in all of your contact information';
$destination = 'this-page';
}
else {
print 'It works!';
$destination = 'results-page';
}
答案 0 :(得分:0)
$destination = '';
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
if (!empty($fname) || !empty($lname) || !empty($email) OR !empty($phone)) {
print 'Please fill in all of your contact information';
$destination = 'this-page';
}
else {
print 'It works!';
$destination = 'results-page';
}
答案 1 :(得分:0)
希望这是学术性的。有更好的方法来解决这个问题。但是在这里:
$destination = '';
$fname = isset($_POST['fname']) ? $_POST['fname'] : null ;
$lname = isset($_POST['lname']) ? $_POST['lname'] : null ;
$phone = isset($_POST['phone']) ? $_POST['phone'] : null ;
$email = isset($_POST['email']) ? $_POST['email'] : null ;
if (empty($fname) || empty($lname) || empty($phone) || empty($email)) {
print 'Please fill in all of your contact information';
$destination = 'this-page';
} else {
print 'It works!';
$destination = 'results-page';
}
总有一天看看一些PHP框架以及它们如何处理表单验证。例如:http://framework.zend.com/manual/1.12/en/zend.form.elements.html可能会给你一些见解。
答案 2 :(得分:0)
似乎问题与此处的验证部分无关。您是从else语句获取print和从if语句获取$ destination变量?这应该在逻辑上是不可能的。您确定代码中没有任何语法错误等吗?这是您程序中的确切代码吗?