2

它应该如何工作:Index.php 是受保护的页面。它包括 check.php,它检查您是否有一个会话 = 好。如果没有,你没有登录 -> 注销,删除会话。但它不起作用,它总是注销,就像我没有登录一样......

索引.php

include ‘check.php’;
echo "logged in";

检查.php

session_start();
if($_SESSION[‘login’] != ‘good’) {
unset($_SESSION[‘login’]);
unset($_SESSION[‘name’]);
header(‘Location: login.php?logoff’);
exit();
} 

登录.php

if(isset($_POST[‘login’])) {
$gb = array();
$gb[‘user1’] = ‘pass1’;
$gb[‘user2’] = ‘pass2’;
if(isset($gb[$_POST[‘username’]]) && $gb[$_POST[‘username’]] == $_POST[‘password’])
{ 
$_SESSION[‘login’] = ‘good’;
$_SESSION[‘name’] = $_POST[‘name’];

header("Location: index.php");
} else {

header("Location: login.php?wrongpass");

}

} else { ?>
Login Form
<?php } ?>

我希望有一个人可以帮助我!

4

8 回答 8

4

您应该验证您在 login.php 中启动了会话。

于 2012-10-10T12:32:10.900 回答
2

您需要在所有页面的顶部有 session_start(),您还没有显示登录页面的会话开始。

(感谢 Danny 证明我不会打字)

于 2012-10-10T12:30:48.793 回答
2

放入session_start();所有页面

于 2012-10-10T12:32:07.030 回答
1

检查register_globals您的 php.ini中是否已启用

于 2012-10-10T12:32:49.557 回答
1

首先检查要使用会话变量的页面会话是否启动,如果会话不是 stat,则启动它。

这是 php 文件中的第一行。

会话检查的代码是:

if(!session_id())
{
    session_start();
}
于 2012-10-10T12:36:45.987 回答
1
if($count==1){
    session_start();    
    $_SESSION['Username'] = $UserName;
    $_SESSION['Password'] = $password;
    UpdateOnlineChecker($Session);
    header( "Location: http://". strip_tags( $_SERVER ['HTTP_HOST'] ) ."/newHolo/" );
    exit;
}
else {
    echo "Wrong Username or Password";
}

看我的代码。它检查语句是否为真(对我来说,如果有一行带有我执行的查询语句)。然后我开始一个会话,基本上我会定义全局会话变量,向我的数据库发出一个查询以更新会话,然后参考。

你错过了 session_start(); 在您的 if true 块中。

于 2012-10-10T12:41:47.077 回答
1

使用一个用于操作文档,例如 index.php 有代码:

session_start();
if(isset($_POST['login']) && isset($_POST['password'])){
   // login
   header('Location: (here is some page)');
}
if(!isset($_SESSION['user']){
  // @todo some action
} else {
  require_once('login.php');
}

if(isset($_GET['logout'])){
   unset($_SESSION['user']);
   header('Location: (here is some page)');
}
于 2012-10-10T13:35:36.443 回答
0

我认为问题是标题:

('location:------.php);

您的托管服务器不运行此。你可以使用这个:

echo "<script>window.location.href='-----.php'</script>";
于 2017-02-10T19:32:42.197 回答