次のようにCakePHPでセッションを作成しました:
$User = array('userid'=>232, 'access'=>1)
$this->Session->write('User',$User);
JavaScript / jQueryuserid
を使用してセッションにチェックインしたい
JavaScriptでこのセッションに直接アクセスする方法はありますか。
ありがとう
次のようにCakePHPでセッションを作成しました:
$User = array('userid'=>232, 'access'=>1)
$this->Session->write('User',$User);
JavaScript / jQueryuserid
を使用してセッションにチェックインしたい
JavaScriptでこのセッションに直接アクセスする方法はありますか。
ありがとう
JavaScript でこのセッションに直接アクセスする直接的な方法はありますか。
いいえ。セッション データはサーバーに保存されます。
これにアクセスするには、PHP を介して URI で公開し、その URI に対して HTTP 要求を行う必要があります (おそらく Ajax を使用します)。
偽造、操作などの可能性があるクライアントのユーザー ID を確認するのはなぜですか? セッション ID を使用するだけです。
それとは別に、ユーザー ID を JavaScript に公開する簡単な追加の方法が 2 つあります。どちらにも、追加の AJAX 呼び出しが必要ないという利点があります (ページの応答性が向上します)。
php ファイルで、次の操作を行います。
<script>
var userId = <?php echo $User['userid']; ?>;
</script>
これは、1 つの値の単なる例です。PHP 変数を JavaScript に公開するためのより良い方法は、次のような別の PHP ファイル/コントローラー アクションです。
<?php
session_start();
$myValues = array();
$myValues['User'] = get_user_from_session(); // just an example
// Assemble all your values here
header('Content-type: application/json');
echo "var myValues = ".json_encode($myValues);
// or, if you go for a JSONP style init, use
// echo "initValues(".json_encode($myValues).")";
その後、スクリプトの src 属性に値を含めることができます。ただし、これにより別の HTTP リクエストが発生します。
// js function
var getUserId = function()
{ userId = null;
$.ajax({
type: "POST",
url: "ajax.php", // @TODO set the right Path
async : false,
success: function(msg)
{
userId = msg;
}
});
return userId;
}
/*PHP ajax.php*/
<?php
echo $this->Session->get('User'); or $_SESSION['User']
?>
--- CAll----------
var userId = getUserId();