我需要提示使我的PHP密码工作


I Need Tips to make my PHP password work

我对这些代码有问题:

密码.php:

    <html>
 <head>
    <title>Password!</title>
    <meta charset="UTF-8">
 </head>
 <body>
    <ul>
    <form action="check.php" method="POST">
        <li><input type="password" name="no1" placeholder="enter your password"></li>
        <li><input type="submit" value="GO!"></li>
    </form>
    </ul>
 </body>

这里是password2.php:

    <html>
 <head>
    <title>Password!</title>
    <meta charset="UTF-8">
 </head>
 <body>
    <ul>
    <form action="check.php" method="POST">
        <li><input type="password" name="name" placeholder="verify your password"></li>
        <li><input type="submit" value="GO!"></li>
    </form>
    </ul>
 </body>

这是check.php:

    <?php
$enter = $_POST['no1'];
if (empty($enter)) {
    echo "Please enter password!";
}
if (!(empty($enter))) {
    echo "Your password is $enter";
}

?>
<html>
<body>
<p><a href="password2.php">Move on!</a></p>
</body>
</html>
<?php
$check = $_POST['name'];
if ($check == $enter) {
    echo "Acces Granted";
}
if (!($check == $enter)) {
    echo "Acces denied!";
}
?>

我遇到的麻烦是:

  • check.php无法识别password2.php中的"name">
  • 我无法验证密码

因为$_POST变量在请求之间不持久,所以它不起作用。您可以将第一个表单中的值存储在$_SESSION变量中,并从会话中检索它。

有关php会话的更多信息,请点击

除了check.php之外,保持问题中的所有内容不变,这是修改后的:

           <?php
            //starting the session in PHP
            session_start();
            $enter = null;
            // this is all the logic you need for retrieving `no1` from POST or SESSION 
            if (isset($_POST['no1'])){
                $enter = $_POST['no1'];
                $_SESSION['no1'] = $enter;
            }elseif(isset($_SESSION['no1'])){
                $enter = $_SESSION['no1'];
            }


            if (empty($enter)) {
                echo "Please enter password!";
            }
            if (!(empty($enter))) {
                echo "Your password is $enter";
            }

            ?>
                <html>
                <body>
                <p><a href="password2.php">Move on!</a></p>
                </body>
                </html>
            <?php
            $check = $_POST['name'];
            if ($check == $enter) {
                echo "Acces Granted";
                // you can comment the next line if you are debugging,
                // but after that you should destroy de session so you don't have a password as plain text
                session_destroy();
            }
            if (!($check == $enter)) {
                echo "Acces denied!";
            }
            ?>