尝试处理表单时页面未加载

时间:2015-07-25 14:06:46

标签: php forms

我是PHP的新手,我正在尝试处理表单,所以我添加了if条件来检查是否按下了提交按钮以及是否设置了表单中的其他元素。由于某种原因,它导致页面无法加载(它加载,但显示一个空白页面)所以我实际上无法提交任何内容..

当我尝试删除php代码时,它加载得很好。我在这里做错了什么?

<body>
    <?php
    if(isset(filter_input(INPUT_POST, 'aglogin')) && isset(filter_input(INPUT_POST, 'agname')) && isset(filter_input(INPUT_POST, 'agpass')))
    {
        echo 'Submitted..';
    }
    ?>
    <form method="post">
        Username: <input type="text" id="agname" name="agname"/>
        <br>
        Password: <input type="password" id="agpass" name="agpass"/>
        <br>
        <input type="submit" id="aglogin" name="aglogin" value="Login">
    </form>
</body>

2 个答案:

答案 0 :(得分:2)

不要使用isset();因为如果设置了变量,filter_input()将返回true,如果未设置,则返回false。

<body>
<?php
if(filter_input(INPUT_POST, 'aglogin') && filter_input(INPUT_POST, 'agname') && filter_input(INPUT_POST, 'agpass'))
{
    echo 'Submitted..';
}
?>
<form method="post">
    Username: <input type="text" id="agname" name="agname"/>
    <br>
    Password: <input type="password" id="agpass" name="agpass"/>
    <br>
    <input type="submit" id="aglogin" name="aglogin" value="Login">
</form>

答案 1 :(得分:1)

你可以试试这个

<?php
    if( $_SERVER['REQUEST_METHOD']=='POST' ){
        $valid=( array_key_exists('aglogin',$_POST ) && array_key_exists('agname',$_POST ) && array_key_exists('agpass',$_POST ) ) ? true : false;

        if( $valid ) echo "Form submitted successfully";

    }
?>