无法告诉用户已登录的页面

时间:2013-06-14 01:13:58

标签: php

所以我从php开始,我有一个非常简单的设置。我有2页。一页是登录页面,另一页是登录页面。我现在的问题是每当我成功登录时,第二页仍然认为我没有登录。这是我的代码:

我知道我正确登录,因为它不会打印“错误”,并且在进入下一页之前我看到“在这里”打印。 登录页面:

<!DOCTYPE html>
<html>
    <head>
        <?php 
        session_start();
        ?>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <meta content="utf-8" http-equiv="encoding">
        <?php 
        if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
            ?>
            <script language="Javascript"> window.location.href="show.php";</script>
            <?php
        }?>
    </head>
    <body>
            <form method="post">
                Username: <input type="text" name="username" size="15" /><br />
                Password: <input type="password" name="pass" size="15" /><br />
                <input type="submit" name ="submit1" value="Login"/>
            </form>
        <?php 
            if (isset($_POST['submit1'])) {
                if (LOGGEDIN) {
                    print "GOT HERE";
                    $_SESSION['loggedin'] = true;
                    $_SESSION['user'] = $username;
                    ?>
                    <script language="Javascript"> window.location.href="show.php";</script>
                    <?php
                }
                else {
                    print "WRONG!";
                }
            }

        ?>
    </body>
</html>

登录页面:

<!DOCTYPE html>
<html>
    <head>
        <?php session_start();?>
        <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
        <meta content="utf-8" http-equiv="encoding">
        <?php 
        if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
            ?>
            <script language="Javascript"> window.location.href="index.php";</script>
            <?php
        }?>
    </head>
    <body>WELCOME
    </body>
</html>

1 个答案:

答案 0 :(得分:5)

您不应该将session_start()放在任何其他代码之前吗?

<?php session_start(); ?>
<!DOCTYPE html>
<html>
...