在发布之前,我已经阅读了:会话在服务器中不起作用session_start但是,我没有找到解决问题的方法。好的,我正在编写一个应用程序,该应用程序使用jQuery AJAX进行用户登录页面,以检查它们是否被管理,然后将SESSION变量传递到页面中。如果未设置 SESSION,则显示 403 禁止页面。admin.php我已经在我的机器上运行了代码,但是,在将所有内容部署到服务器后,它总是显示 403 禁止。我检查了 SESSION,发现它的长度仅为 0;Array()现在我正在尝试通过以下方式做到这一点:ini_set('session.save_path', $sessdir);
session_start();但我无法让它在我的本地机器上工作,这里有两个示例:第一个 PHP 文件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php // abs path of this file function inve(){return "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";} // remove n items from end of a path in string format function rewind_url($dire, $ind){ $pieces = explode('/', $dire); for($i=0; $i<$ind; $i++){ array_pop($pieces); } $pieces = implode('/', $pieces); return $pieces; } function put($str){ print_r("<h2>" . $str . "</h2>"); } $sessdir = rewind_url(inve(), 1); ini_set('session.save_path', $sessdir); session_start(); $_SESSION['name'] = 'joseph'; put($sessdir); put(count($_SESSION)); ?> <a href='another.php'>here</a> </body> </html>第二个 PHP 文件 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php // abs path of this file function inve(){return "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";} // remove n items from end of a path in string format function rewind_url($dire, $ind){ $pieces = explode('/', $dire); for($i=0; $i<$ind; $i++){ array_pop($pieces); } $pieces = implode('/', $pieces); return $pieces; } function put($str){ print_r("<h2>" . $str . "</h2>"); } $sessdir = rewind_url(inve(), 1); ini_set('session.save_path', $sessdir); session_start(); put(count($_SESSION)); ?> </body> </html>简而言之,我想在单击链接后看到数字 1。 我非常感谢您的帮助。
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
很难说,我们甚至不知道是否启用了 phpsession,我应该签出 phpinfo();
此外,我应该在之后检查两件事:
让所有的东西都在每一页的顶部。session_starts();
此外,没有带有https的完整路径,而是您提供的第一个链接中解释的相对目录路径。the ini_set('session.save_path', $sessdir);
用:$sessdir = dirname(dirname(__FILE__)).'/session_dir'
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报
0/150
提交
取消