从php://输入回调将php会话ID插入数据库

时间:2012-05-24 11:38:02

标签: php mysql

我有一个回调页面,我用来在数据库中插入数据。当我加载此页面。和echo $ _SESSION [' user_id']。它回显user_id,并将其插入到数据库中。但是当我尝试在执行回调函数时插入数据时,$ _SESSSION [' user_id']被忽略,其他数据被成功插入。这是为什么?

echo $_SESSION['user_id'];    
$decodedJSON = json_decode(file_get_contents('php://input'), true);    
$account = $decodedJSON['account'];    
$query_insert = "insert into video (account,userid) values ($account,$_SESSION['user_id'])";    
$result_insert = mysql_query($query_insert);

当我刷新页面时,会插入$ _SESSION [' user_id']。但是当我尝试运行回调函数时,会插入$ account,但是$ _SESSION [' user_id']不是。

1 个答案:

答案 0 :(得分:0)

我不是百分之百确定这一切是如何与你的代码示例相结合的,但是如果你试图将somethign传递给stanard输入然后运行PHP,你还需要传递sessionID。

当你从你的borwser调用代码时,cookie会神奇地为你处理所有这些代码,会话ID会在cookie中传递。但是如果你从另一个来源打电话,cookie就不会通过。

我可以解释一下如何做,但没有比PHP手册更好:http://php.net/manual/en/session.idpassing.php - 基本上将SID附加到hte URL的末尾。

但请注意关于“session.use_trans_sid”的评论,默认情况下已禁用,需要在php.ini中启用