PHP $ _POST奇怪的行为,只发布第二次表单

时间:2012-12-20 21:15:40

标签: php forms post

我真的被一些非常烦人的东西困住了。经过几个小时的尝试,我知道我已经到了这里,看看是否有人可以提供帮助。这是一般的想法。

我希望通过表单发送密码可以使用某个页面。没有用户,密码也不会改变。这应该很简单,对吧!

我有一个表单,提交方法设置为post,操作设置为$_SERVER['PHP_SELF']。计划是,当我预先定义的密码变量与表单中输入的内容匹配时,页面上会显示一组内容,如果没有,则会得到一组不同的内容(表单)。

这就是奇怪的。在查看print_r时,我会看到我在数组中的表单中提交的内容,但是当我在数组中填入正确的密码时,会快速清空。我在页面重新加载时看到了这一点。它完全清空了自己。更奇怪的是,我第二次这样做,它的确有效。我在这里错过了什么?我很想知道!

非常感谢,圣诞快乐。

----一些代码----

表格

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <label for="pass" id="pass">Password:</label>
        <input type="text" name="pass" id="pass" />
        <input type="submit" name="submit" value="Yes" />
    </form>

文件顶部的一些PHP;

$pass = '12846565488374';
if($_POST['pass']){ $login = $_POST['pass']; } else { $login = 'empty'; }
if($login != $pass) { $show = 0; } elseif($login == $pass){ $show = 1; }

-----解决了------

原来这是一个在我不知情的情况下重新加载页面的JS插件。

4 个答案:

答案 0 :(得分:1)

尝试:

if(isset($_POST['pass']) AND $_POST['pass'] == $pass) {
     $show = 1;
} else {
     $show = 0;
}

从下面的评论中复制:

从服务器加载页面后,PHP无法更新任何内容...您只能使用refresh或JS / AJAX来更改内容。如果你把整个页面上传到某个地方会容易得多。

答案 1 :(得分:0)

<?php
    if (isset($_POST['pass']))
    {

        if ($_POST['pass'] == $pass)
        {
            $show = 1; 
            echo $show;
        }
        else
        {
            $show = 0;
            echo $show;
        }
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <label for="pass" id="pass">Password:</label>
    <input type="text" name="pass" id="pass" />
    <input type="submit" name="submit" value="Yes" />
</form>

也许是这样的?

echo的目的是显示何时输入正确的密码,$ show更改为1,错误时更改为0

编辑:

您的参数正在检查$show

<?php
    if (isset($show) AND $show === 1)
    {
        echo "The Variable Is Set To 1"; 
    }
    elseif (isset($show) AND $show === 0)
    {
        echo "The Variable Is Set To 0";
    }
?>

经过测试并使用您的代码。

答案 2 :(得分:0)

尝试:

    <?PHP
if(isset($_POST['pass'])
    {
    $pass = '12846565488374';
    ($_POST['pass'] == $pass)? $show = 1 : $show = 0;
    echo $show;
    }
    else
        {
?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
            <label for="pass" id="pass">Password:</label>
        <input type="text" name="pass" id="pass" />
        <input type="submit" name="submit" value="Yes" />
    </form>
<?PHP
        }
?>

答案 3 :(得分:0)

感谢大家的帮助 - 正如Matanya所说,这确实是一个重装页面的Javascript问题。它是一个音乐播放器,它被置于IF声明的“真实”部分。我不明白为什么它有这种效果,但至少我知道。我以为错误会在我的PHP中。这是有问题的玩家:SCM音乐播放器http://scmplayer.net

再次感谢。