PHP会话在页面之间丢失数据

Fri*_*c14 5 php session

我正在尝试为我的网站设置一个登录系统,要求有人登录才能发布.我已经设置了会话,它在我的本地主机上工作得很好,但在服务器上却不行.我在某些页面上设置了print_r(session)以查看数据丢失的位置.在checklogin.php页面上,这是当有人登录时运行的页面,它工作正常.这是一些代码:

<?php
session_name('login_session');
session_start();

mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("date_ideas") or die(mysql_error());

$uname=$_POST['uname'];
$uname=mysql_real_escape_string($uname);
$pass=$_POST['pass'];
$pass=mysql_real_escape_string($pass);
$pass=md5($pass);

$query="SELECT * FROM users WHERE uname='$uname' AND pass='$pass'";

$result=mysql_query($query) or die(mysql_error());

$numrows=mysql_num_rows($result);

echo $numrows;

if ($numrows==1)
{
$_SESSION['login']="1";
$_SESSION['uname']=$uname;
echo "<script type='text/javascript'>alert('match');</script>";
print_r($_SESSION);
}
else
{
$_SESSION['login']="";
echo "<script type='text/javascript'>alert('Invalid Login');</script>";
echo "<script type='text/javascript'>window.location = 'login.php?uname=$uname'</script>";
}
?>
Run Code Online (Sandbox Code Playgroud)

当我提交具有良好登录信息的表单时,弹出警报并返回打印:

数组([登录] => 1 [uname] => FrizbeeFanatic14)

所以在这一点上它正在发挥作用.但是,当我转到主页面时,打印成为:

数组()

所以它丢失了会话信息.以下是主页面中的代码:

<?php
session_name('login_session');
session_start();
?>
<html>
<head>
<title>Great Date Ideas</title>
<link rel="stylesheet" type="text/css" href="mainstyle.css" />
<script type="text/javascript" src="validate.js"></script>
<script type="text/javascript" src="cookiecheck.js"></script>
</head>
<body onload="checkCookie()">
<script type="text/javascript">
if (detect=false)
{
document.write("You must enable cookies to view this page.");
window.stop();
document.execCommand('Stop');
}
</script>
<div id="home"><?php require("header.php");?></div>
<?php
print_r($_SESSION);
mysql_connect("localhost","root","root") or die(mysql_error());
mysql_select_db("date_ideas") or die(mysql_error());

$result=mysql_query("SELECT * FROM ideas ORDER BY post_date DESC") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

它继续,但下面的工作正常.

所以这些代码在我的localhost上运行得很好,但是在服务器上我得到了这个错误.

Fri*_*c14 1

我发现了问题 - PHP 会话的保存目录是 apache 根目录,并且我正在运行 nginx fastcgi。我刚刚更改了该文件夹的根权限,它就可以工作了。非常感谢您的帮助。