PHP会话不保存

Sam*_*mir 13 php session

我在我网站的每一页的第一行都写了这篇文章.

include("restd.php");
Run Code Online (Sandbox Code Playgroud)

和restd.php包含以下行:

@session_start();
if(isset($_SESSION['id']))
{
}
else
{
  header("location:index.php");
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,当我点击或在我的网站上做某事时.它让我退出并带我去index.php.

我确定它与会话有关.香港专业教育学院尝试了每一件事来避免这个问题,但我使用restd.php因为我不希望任何人复制某人的网址并粘贴并进入网站.

任何登录的人都可以查看其他人的页面.如果他们没有登录,那么他们将被重定向到index.php

编辑:和家伙一个令人困惑的事情是,这一切在我的测试服务器上工作正常,这是easyPHP-5.3.8.0但是当我将所有文件上传到我的服务器时,这个问题就出现了.

pow*_*tac 47

您的会话目录(可能/tmp/)不可写.

检查session_save_path()它是否可写.

if (!is_writable(session_save_path())) {
    echo 'Session path "'.session_save_path().'" is not writable for PHP!'; 
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*lin 5

你真的在页面上设置了$ _SESSION ['id'] ......

你在这里要做的是:

  1. 启动会话并从会话处理程序加载$ _SESSION
  2. 检查$ _SESSION是否包含键'id'
  3. 如果未设置$ _SESSION ['id'],则重定向到index.php

你真的在index.php中这样做吗?

session_start();
$_SESSION['id'] = something;
Run Code Online (Sandbox Code Playgroud)


Zul*_*rul 5

你需要声明$_SESSION['id']

文件1.php

session_start();

$_SESSION['id'] = '123'  
Run Code Online (Sandbox Code Playgroud)

文件2.php

include 'file1.php'

if(isset($_SESSION['id']))
{

}
else
{
  header("location:index.php");
}
Run Code Online (Sandbox Code Playgroud)