php会话没有';行不通

php会话没有';行不通,php,session,login,Php,Session,Login,工作原理: php是安全页面。它包括check.php,它检查您是否有session=good。如果没有,则表示您未登录->注销,删除会话。但它不工作,它总是注销,就像我没有登录一样 index.php include ‘check.php’; echo "logged in"; session_start(); if($_SESSION[‘login’] != ‘good’) { unset($_SESSION[‘login’]); unset($_SESSION[‘name’]); hea

工作原理: php是安全页面。它包括check.php,它检查您是否有session=good。如果没有,则表示您未登录->注销,删除会话。但它不工作,它总是注销,就像我没有登录一样

index.php

include ‘check.php’;
echo "logged in";
session_start();
if($_SESSION[‘login’] != ‘good’) {
unset($_SESSION[‘login’]);
unset($_SESSION[‘name’]);
header(‘Location: login.php?logoff’);
exit();
} 
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 } ?>
check.php

include ‘check.php’;
echo "logged in";
session_start();
if($_SESSION[‘login’] != ‘good’) {
unset($_SESSION[‘login’]);
unset($_SESSION[‘name’]);
header(‘Location: login.php?logoff’);
exit();
} 
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 } ?>
Login.php

include ‘check.php’;
echo "logged in";
session_start();
if($_SESSION[‘login’] != ‘good’) {
unset($_SESSION[‘login’]);
unset($_SESSION[‘name’]);
header(‘Location: login.php?logoff’);
exit();
} 
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 } ?>
if(isset($\u POST['login'])){
$gb=数组();
$gb['user1']='pass1';
$gb['user2']='pass2';
如果(设置($gb[$\u POST['username']])和&$gb[$\u POST['username']]=$\u POST['password']))
{ 
$\会话['login']='good';
$_SESSION['name']=$_POST['name'];
标题(“Location:index.php”);
}否则{
标题(“位置:login.php?错误传递”);
}
}还有{?>
登录表单

我希望有人能帮助我!

您需要在所有页面的顶部显示session_start(),因为您尚未显示登录页面的session start


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

Put
session\u start()
在所有页面中

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

检查您的php中是否启用了
register\u globals
。ini

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

这是php文件的第一行

会话检查的代码为:

if(!session_id())
{
    session_start();
}
看看我的代码。它检查语句是否为真(对我来说,如果有一行我执行了查询语句)。然后我启动一个会话,基本上我会定义全局会话变量,向我的数据库发出一个查询以更新会话,然后引用


在if true块中缺少会话_start()。

将其用于操作文档,如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)');
}

我认为问题在于:

('location:------.php);
您的主机服务器没有运行此操作。 您可以使用以下选项:

echo "<script>window.location.href='-----.php'</script>";
echo“window.location.href='-.php';

是否
登录.php
包含
会话开始();
?您的单引号看起来不正确,这是复制/粘贴问题还是您设置它们的方式,
'
'
应该是
'
您缺少的
会话开始()
当您的登录语句为true时。如果没有,php将不会将其识别为会话。或者在php.ini:session.auto_start OnHa中执行此操作。我也这么认为。但我自己无法编辑它-我认为最好将其添加到OP尝试复制/粘贴的情况下。好的,不是在我的true块中,而是在页面中(也可以在顶部).不过还是谢谢你!