ログインしていなければページをリダイレクトしようとしています。私が意味するものを表示しようとします。 site.phpでPHP - "if"ステートメントでセッション変数を変更できない
<?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;
}
}
:index.phpの中
<?php
session_start();
if ($_SESSION["loggedin"] == 0)
{
header('Location: http://test-weeabear.c9users.io/');
}
else
{
return "It worked!"
}
?>
なぜそれは私がsite.htmlを開いたときに、それも、バックのindex.htmlに私をリダイレクトしていますログイン後?
注:ファイルのリンクや名前のように、私が変更したものがいくつかあります。プライバシーのため。
書き込みのsession_start()site.phpであれば条件の前に。 –
まだ私をリダイレクトしています。何が間違っているのか分からない。 –
あなたのヘッダーステートメントは、実際のコードでindex.phpのURLを含んでいますか? $ _SESSIONの横にexitを付けて印刷し、受け取っているものを確認してください。 –