<;PHP>;会话不';不工作(Cookie不发送?)
编辑4:为什么此问题不是链接问题的副本 虽然根本问题与链接问题中的问题相同,但我没有收到错误消息Headers not send,因此我阅读的答案在此时对我没有用处。因此,这个问题虽然可能太长,但它本身就有价值 原创帖子 很抱歉打扰你,但是经过两天的研究,我崩溃了。我会尽量提供最多的信息 我在做什么: 我目前正在写一个登录系统,只是为了好玩。注册、将数据输入数据库、登录都非常有效。我用1和1托管,我的数据库也在那里 现在为了继续,我想从会话开始。起初,一切似乎都很好,很简单<;PHP>;会话不';不工作(Cookie不发送?),php,session,cookies,Php,Session,Cookies,编辑4:为什么此问题不是链接问题的副本 虽然根本问题与链接问题中的问题相同,但我没有收到错误消息Headers not send,因此我阅读的答案在此时对我没有用处。因此,这个问题虽然可能太长,但它本身就有价值 原创帖子 很抱歉打扰你,但是经过两天的研究,我崩溃了。我会尽量提供最多的信息 我在做什么: 我目前正在写一个登录系统,只是为了好玩。注册、将数据输入数据库、登录都非常有效。我用1和1托管,我的数据库也在那里 现在为了继续,我想从会话开始。起初,一切似乎都很好,很简单 session_st
session_start();
//returns true when put into an if()
$_SESSION['id'] = //user ID read from databse
echo $_SESSION['id']; //prints out the ID just fine.
当我转到另一页时,我立即调用session_start();再一次。
事实上,我所有的页面都以
include 'functions.php';
$con = startup();
//statup(); is in functions.php, connects to a databse,
//calls session_start(); succesfully, then returns the connection.
问题不应该出在函数中,因为它工作得很好,而且我尝试将连接/会话开始的东西放在每个文件中,而不是一个共享函数中-没有改变任何东西
但是没有一个会话变量保留值
可能的问题
不发送Cookies
javascript:alert(document.cookie);在Firefox中给了我
__qca=P0-1714752251-1385128732260
Chrome告诉我没有收到cookies,也没有阻止cookies
考虑到许多人在调用session_start()时无法发送cookie的问题;因为之前已经发送过cookies,所以我假设我不需要在代码中调用任何关于发送cookies的内容
我不知道该怎么看
我的主机不允许会话
这是我的另一个想法。但是,我可以看到我的php_info();它告诉我:
会话设置
启用会话支持
session.cache_过期180
session.cookie\u域无值
session.cookie\u httponly关闭
session.cookie\u生存期0
session.cookie\u路径/
session.use_cookies On
session.use_only_cookies On
session.use_trans_sid 0
这些只是我觉得有点相关的台词
因此,我从中了解到,会话应该可以很好地工作,使用cookies和其他东西。但我也不太了解这个水平
所以,这就是我被困的地方。我的代码的所有组件都工作得很好,我很确定语法是正确的,据我所知,服务器支持会话
哦,我还尝试将会话路径从/tmp更改为我的Web空间上的一个目录-它似乎没有任何作用,服务器的“部分”上没有存储任何数据
编辑:
使用有关错误报告的新信息(E_ALL);我现在收到了一般错误消息
警告:session_start():无法发送会话cookie-第9行/homepages/23/d315777983/htdocs/mtm/index.php:14中的/homepages/23/D31577983/htdocs/mtm/functions.php中已发送的标题(输出从/homepages/23/D31577983/mtm开始)
警告:session_start():无法发送session cache limiter-第9行的/homepages/23/d315777983/htdocs/mtm/index.php:14中已发送的头(输出开始于/homepages/23/d31577983/htdocs/mtm/functions.php)
我想我现在可以开始使用旧的建议解决方案了
编辑2:
按照建议,我添加了print\u r($\u SESSION);之后包括
它只打印“Array()”(不带引号)
我还将session_start移回了每个单独的文件中,在包含functions.php之前调用
它说Cookie是在第14行发送的——在我的代码中,这实际上就是
<?php
当您在下行之后转到下一页时,请尝试打印所有会话,然后查看是否得到它
include 'functions.php';
print_r($_SESSION);
我发现有一种可能性,在调用之前,function.php
中已经发送了一些头文件
session_start();
好的,即使在解决方案之后很长一段时间,a发现了另一个,我在清理浏览器数据后遇到了$u会话问题,我的连接脚本没有接收数据,所以我创建了另一个脚本,它通过$u请求接收数据,然后将这些数据转换为新的会话。希望这对任何人都有帮助。我遇到了一个类似的问题,我解决了它,删除了源代码中的空格
具体地说,当过早地向客户机发送应答时,就会发生错误。当您在
-标记外有空格时,可能会发生这种情况。主要防止此错误的一种方法是在文档末尾不添加?>
描述得很好。但事实总是如此;除非您事先启用了cookie,否则不会告诉您cookie问题。哦,这改变了很多。现在返回到已发送的标题错误。谢谢