有没有办法将从javascript中获取的会话存储到PHP的会话中?我知道我必须做一个POST,有人可以举个例子吗?这就是我到目前为止:我想在PHP的会话中存储uid
<script type="text/javascript">
jQuery(document).ready(function() {
FB.init({appId: '135570939849404', status: true, cookie: true, xfbml: true});
FB.getLoginStatus(function(response) {
if (response.session) {
//do smething?
}else {
window.location = "index.php"
}
});
});
</script>
答案 0 :(得分:0)
显然你知道自己想做什么,所以使用Jquery的ajax方法。在那里你可以启用post方法。
jQuery.ajax({
async:true,
type: "POST",
url: ("/yourTarget.php"),
dataType : 'json',
data: {email : 'Jeremy'},
success : function(data){
alert("success");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
}
});
答案 1 :(得分:0)
uid作为response.session.uid存储在FB对象中,这是您需要通过Ajax发送的参数。
<script type="text/javascript">
jQuery(document).ready(function() {
FB.init({appId: '135570939849404', status: true, cookie: true, xfbml: true});
FB.getLoginStatus(function(response) {
if (response.session) {
jQuery.ajax({
async:true,
type: "POST",
url: ("/yourTarget.php"),
dataType : 'json',
data: {uid : response.session.uid},
success : function(data){
alert("success");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error");
}
});
}else {
window.location = "index.php"
}
});
});
</script>
会话数据全部存储在您在javaScript中读取的cookie中。如果你想使用类似代码的东西,你当然可以直接从PHP访问这些数据:
function get_facebook_session_data($app_id, $application_secret) {
$cookieName = 'fbs_' . $app_id;
if (!isset($_COOKIE[$cookieName])) {
return null;
}
$fb_session = array();
//If magic_quotes is set then stripslashes else strip doublequotes then trim the cookie contents.
//Parse the cookie - loading each parameter into an associative array $fb_session.
parse_str(trim(get_magic_quotes_gpc() ? stripslashes($_COOKIE[$cookieName]): $_COOKIE[$cookieName],'"'), $fb_session);
return $fb_session;
}
$ fb_session ['uid']拥有所需的数据!
还有一个PHP SDK,它创建一个包含这些数据的对象: https://github.com/facebook/php-sdk/
您可以使用getUser()方法获取UID .....