0

データベースにデータを挿入するために使用しているコールバック ページがあります。このページを読み込んだとき。$_SESSION['user_id'] をエコーし​​ます。user_id をエコーし​​、db に挿入します。ただし、コールバック関数の実行中にデータを挿入しようとすると、$_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も渡す必要があります。

borwserからコードを呼び出すと、Cookieがすべてを魔法のように処理し、セッションIDがCookieで渡されます。ただし、別のソースから呼び出している場合、Cookieは渡されません。

その方法を説明することはできますが、PHPのマニュアルに勝るものはありません。http: //php.net/manual/en/session.idpassing.php-基本的に、URLの末尾にSIDを追加します。

ただし、「session.use_trans_sid」に関するコメントに注意してください。これはデフォルトで無効になっており、php.iniで有効にする必要があります。

于 2012-05-24T11:51:25.530 に答える