Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话在页面之间丢失数据_Php_Session - Fatal编程技术网

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

PHP会话在页面之间丢失数据,php,session,Php,Session,我正在尝试为我的网站设置一个登录系统,需要有人登录才能发布。我用会话设置了它,它在本地主机上运行得很好,但在服务器上却不行。我在一些页面上设置了print_r(会话),以查看数据丢失的位置。在checklogin.php页面上,该页面在有人登录时运行,工作正常。下面是其中的一些代码: <?php session_name('login_session'); session_start(); mysql_connect("localhost","root","root") or die(m

我正在尝试为我的网站设置一个登录系统,需要有人登录才能发布。我用会话设置了它,它在本地主机上运行得很好,但在服务器上却不行。我在一些页面上设置了print_r(会话),以查看数据丢失的位置。在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>";
}
?>

我唯一一次遇到类似问题,是在转到另一个页面时(从
www.mydomain.com
mydomain.com
,反之亦然)无意中更改了域

您可以使用以下命令在不同子域之间保持会话:


编辑:也许这可以帮助您:一篇非常有趣的文章:

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

这是我说的会话路径:)我应该把代码放在哪里?在index.php的开头?还是全部?我把它放在index.php和checklogin.php的开头,它没有改变。一篇非常有趣的文章是什么意思?它链接到@NobleUpload非常奇怪,我很确定当时我输入了一个有效的链接。但是我想我想链接到我现在链接到的那篇文章……如果(detect=false)
,你需要两个相等的,而不是一个相等的。
<?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());
session_name('login_session');
session_set_cookie_params(0, '/', '.mydomain.com');
session_start();