<;PHP>;会话不';不工作(Cookie不发送?)

<;PHP>;会话不';不工作(Cookie不发送?),php,session,cookies,Php,Session,Cookies,编辑4:为什么此问题不是链接问题的副本 虽然根本问题与链接问题中的问题相同,但我没有收到错误消息Headers not send,因此我阅读的答案在此时对我没有用处。因此,这个问题虽然可能太长,但它本身就有价值 原创帖子 很抱歉打扰你,但是经过两天的研究,我崩溃了。我会尽量提供最多的信息 我在做什么: 我目前正在写一个登录系统,只是为了好玩。注册、将数据输入数据库、登录都非常有效。我用1和1托管,我的数据库也在那里 现在为了继续,我想从会话开始。起初,一切似乎都很好,很简单 session_st

编辑4:为什么此问题不是链接问题的副本

虽然根本问题与链接问题中的问题相同,但我没有收到错误消息Headers not send,因此我阅读的答案在此时对我没有用处。因此,这个问题虽然可能太长,但它本身就有价值

原创帖子

很抱歉打扰你,但是经过两天的研究,我崩溃了。我会尽量提供最多的信息

我在做什么:

我目前正在写一个登录系统,只是为了好玩。注册、将数据输入数据库、登录都非常有效。我用1和1托管,我的数据库也在那里

现在为了继续,我想从会话开始。起初,一切似乎都很好,很简单

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问题。哦,这改变了很多。现在返回到已发送的标题错误。谢谢