0

我有一个回调页面,我用它在数据库中插入数据。当我加载此页面时。并回显 $_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']。

4

1 回答 1

0

我不能 100% 确定这一切如何与您的代码示例结合在一起,但是如果您尝试将某些内容传递给标准输入然后运行 ​​PHP,您还需要传递 sessionID。

当您从浏览器调用代码时,cookie 会神奇地为您处理所有这些,会话 ID 会在 cookie 中传递。但是,如果您从其他来源调用,则不会传递 cookie。

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

但请注意关于“session.use_trans_sid”的注释,默认禁用,需要在 php.ini 中启用

于 2012-05-24T11:51:25.530 回答