PHP-无法更改“中的会话变量”;如果;陈述

PHP-无法更改“中的会话变量”;如果;陈述,php,redirect,Php,Redirect,如果未登录,尝试进行页面重定向。我会尽力表达我的意思 在index.php中: <?php // initialization of login system and generation code $oSimpleLoginSystem = new SimpleLoginSystem(); echo $oSimpleLoginSystem->getLoginBox(); session_start(); $_SESSION["loggedin"] = False; // clas

如果未登录,尝试进行页面重定向。我会尽力表达我的意思

在index.php中:

<?php
// initialization of login system and generation code
$oSimpleLoginSystem = new SimpleLoginSystem();
echo $oSimpleLoginSystem->getLoginBox();
session_start();
$_SESSION["loggedin"] = False;

// class SimpleLoginSystem
class SimpleLoginSystem {

    // variables
    var $aExistedMembers; // Existed members array

    // constructor
    function SimpleLoginSystem() {
        $this->aExistedMembers = array(
            'test' => MD5('test'),  //Sample: MD5('qwerty')
        );
    }

    function getLoginBox() {
        ob_start();
        require_once('login_form.html');
        $sLoginForm = ob_get_clean();

        $sLogoutForm = '<a href="'.$_SERVER['PHP_SELF'].'?logout=1">logout</a>';

        if ((int)$_REQUEST['logout'] == 1) {
            if (isset($_COOKIE['member_name']) && isset($_COOKIE['member_pass']))
                $this->simple_logout();
        }

        if ($_REQUEST['username'] && $_REQUEST['password']) {
            if ($this->check_login($_REQUEST['username'], MD5($_REQUEST['password']))) 
            {
                $_SESSION["loggedin"] = True;
                $this->simple_login($_REQUEST['username'], $_REQUEST['password']);
                header( 'Location: /site.html' );
            } 
            else {
                return 'Username or Password is incorrect' . $sLoginForm;
            }
        } else {
            if ($_COOKIE['member_name'] && $_COOKIE['member_pass']) {
                if ($this->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
                    header( 'Location: /site.html' );
                }
            }
            return $sLoginForm;
        }
    }

为什么当我打开site.html时,它会将我重定向回index.html,即使是在登录之后


注意:我更改了一些内容,例如链接和文件名。为了隐私。

您需要
会话开始()
站点的开始处。php
您需要
会话开始()
在您的
站点.php的开头,将文件扩展名从.html更改为.php

将文件扩展名从.html更改为.php

您正在调用getLoginBox,然后将loggedin更改回false。您需要在头重定向之后包含一个出口

像这样:

header( 'Location: /site.php' );//changed to file extension as .php
exit;

您正在调用getLoginBox,然后将loggedin更改回false。您需要在头重定向之后包含一个出口

像这样:

header( 'Location: /site.php' );//changed to file extension as .php
exit;

在site.php.中的if条件仍然将我重定向回之前写入会话_start()。不知道怎么回事。您的头语句在实际代码中是否包含index.php的url?在site.php.中的条件仍然重定向回我之前,请尝试打印$会话并在其旁边显示exit,然后检查您正在接收的内容。write SESSION_start()。不知道怎么回事。您的头语句在实际代码中是否包含index.php的url?尝试打印$\u会话,并在其旁边显示exit,然后检查您正在接收的内容。我的坏,应该是php。我的坏,应该是php。