更改变量php的值

时间:2013-02-01 16:52:37

标签: php forms validation variables

我需要更改变量$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';
}

3 个答案:

答案 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变量?这应该在逻辑上是不可能的。您确定代码中没有任何语法错误等吗?这是您程序中的确切代码吗?