我正在尝试在 XAMP 的家中练习一个简单的会话代码


i am trying to practice a simple session code in my house in xamp

但有些页面没有显示任何错误消息。 此外,它不会重定向到成功登录后我想重定向的页面。 我希望登录页面在主页上重定向并显示消息,当单击注销链接时,页面再次返回登录页面

<?php    
    session_start();
    error_reporting(E_ALL ^ E_NOTICE);
    ?>
    <?php
        if($_REQUEST["logout"]=='yes'){
        unset($_SESSION["login"]);
        }
    ?>
    <html>
        <body>
            <form action="" method="post">
                <label>Username</label><input type="text" name="unametxt" value="<?php echo $_post["unametxt"]; ?>" />
                <label>Password</label><input type="password" value="<?php echo $_post["password"]; ?>" />
                <input type="submit" name="sbt" value="Login">
            </form>
            <?php
                if(isset($_post["sbt"]))
                {
                    if($_post["unametxt"]== "debarun" && $_post["password"]=="1234")
                    {
                        $_SESSION["login"]="yes";
                        $_SESSION["uname"]=$_post["unametxt"];
                        $_SESSION["passwd"]=$_post["password"];
                        header('location:home.php');
                        }
                    else
                    {
                        echo "Please enter correct credentials";
                        }   
                    }
             ?>
        </body>
    </html>

    and it is my home page script:
    <?php
    session_start();
    if(!isset($_SESSION["login"])){
        session_destroy();
        header('location:login.php');
    }
    else{
        echo "Welcome".$_SESSION["uname"]."<br/>"."your password is".$_SESSION["passwd"];
        }
    ?>
<html>
    <body>
        <form action="" method="post">
            <a href="login.php?logout=yes">Logout</a>
        </form>
    </body>
</html>
please 

告诉我为什么它不起作用??

在密码元素中添加name属性。因此,它无法从数组中获取$_POST并且您的条件将始终失败。

试试这个,

<label>Password</label><input type="password" name="password" value="<?php echo $_post["password"]; ?>" />

第一件事$_post必须是这样的字母大小写,$_POST然后您忘记指定name="password"到密码输入字段看一看

<?php    
    session_start();
    error_reporting(E_ALL ^ E_NOTICE);
    ?>
    <?php
        if($_REQUEST["logout"]=='yes'){
        unset($_SESSION["login"]);
        }
    ?>
    <html>
        <body>
            <form action="" method="post">
                <label>Username</label><input type="text" name="unametxt" value="<?php echo $_POST["unametxt"]; ?>" />
                <label>Password</label><input type="password" name="password" value="<?php echo $_POST["password"]; ?>" />
                <input type="submit" name="sbt" value="Login">
            </form>
            <?php
                if(isset($_POST["sbt"]))
                {
                    echo $_POST["password"];
                    if($_POST["unametxt"] == "debarun" and $_POST["password"] == "1234")
                    {
                        $_SESSION["login"]="yes";
                        $_SESSION["uname"]=$_POST["unametxt"];
                        $_SESSION["passwd"]=$_POST["password"];
                        header('location:home.php');
                        }
                    else
                    {
                        echo "Please enter correct credentials";
                        }   
                    }
             ?>
        </body>
    </html>

把所有这些验证代码放在顶部。在重定向之前,不应将任何内容发送到浏览器。甚至没有空行。

另外,在位置首都制作L

    header("Location: home.php");