0

我真的被一些非常恼人的事情困住了。在尝试了我所知道的一切几个小时后,我最终来到这里,看看是否有人可以提供帮助。这是一般的想法。

我希望通过表单发送的密码可以访问某个特定页面。没有用户,密码不会改变。这应该很容易吧!

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

这就是奇怪的地方。在查看 a 时,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

4 回答 4

1

尝试:

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

从下面的评论中复制:

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

于 2012-12-20T21:27:10.730 回答
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";
    }
?>

这是经过测试并与您的代码一起使用的。

于 2012-12-20T21:27:35.443 回答
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
        }
?>
于 2012-12-20T21:36:24.013 回答
0

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

再次感谢。

于 2012-12-20T21:43:41.713 回答