PHP会话为空

PHP会话为空,php,session,safari,xampp,Php,Session,Safari,Xampp,我用PHP制作了一个简单的登录函数。 我的问题是,当浏览器点击login_success.php页面时,没有会话属性 在checklogin.php中存储会话中的数据后,我通过键入:print\u r$\u session;,检查它是否包含任何数据,这将打印2个对象。然而,当我尝试在login_success.php中执行同样的操作时,结果却是空的 我使用xampp和safari Login.php checklogin.php 登录\u success.php 根据php文档: session

我用PHP制作了一个简单的登录函数。 我的问题是,当浏览器点击login_success.php页面时,没有会话属性

在checklogin.php中存储会话中的数据后,我通过键入:print\u r$\u session;,检查它是否包含任何数据,这将打印2个对象。然而,当我尝试在login_success.php中执行同样的操作时,结果却是空的

我使用xampp和safari

Login.php

checklogin.php

登录\u success.php


根据php文档:

session_start根据通过GET或POST请求传递的会话标识符或通过cookie传递的会话标识符创建会话或恢复当前会话

因此,将session\u start添加到checklogin.php页面的顶部。

只需在页面顶部使用即可。

如下配置您的php.ini:

session.auto_start = 1;
或在第一行运行以下命令:

ini_set('session.auto_start', 1);
除了使用session_start外,还有几个其他原因:

服务器上的磁盘空间已满。这一次碰巧是 请跟我谈谈。尝试在以下位置检查服务器上的可用空间: 根“/”df-h。 服务器上的会话目录 正在写入会话文件的位置具有某些权限 问题。
将会话开始放在页面顶部。checklogin.php没有会话开始;请停止使用mysql_*函数,因为它们已被弃用。。开始使用mysqli_uu或PDO insteadsession_u开始应该在任何页面的任何输出之前,这将是会话感知的。我不喜欢在php.ini中进行更改。如果迁移项目,它们很容易被忘记。我不知道ini_套装,我会记得的@Gudgip您是对的,但是您必须在php.ini中进行一些设置。您无法在代码中完成所有操作。这似乎已成为常见错误;昨天我已经看到了4篇关于session_start的帖子;您需要在文件开头启动会话。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
session_start();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>

<?php print_r($_SESSION); ?>
<body>
</body>
</html>
session.auto_start = 1;
ini_set('session.auto_start', 1);