2011-04-29 2 views
1

Есть ли способ сохранить сеанс, полученный от javascript на сессии PHP? Я знаю, что мне нужно сделать POST, может кто-нибудь дать мне пример? Это то, что я до сих пор: Я хочу, чтобы сохранить идентификатор пользователя в сессии РНРСохранение сеанса facebook с javascript на php

<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

Вы пробовали [Facebook PHP- SDK] (http://github.com/facebook/php-sdk)? это позаботится об этом для вас ... – ifaour

ответ

0

по-видимому, вы знаете, что вы хотите сделать, это с помощью Ajax Jquery методы в. Там вы можете включить метод 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"); 
    } 

}); 
0

UID, хранится в объекте FB как response.session.uid, который является параметром вам необходимо отправить с помощью 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> 

Данные сеанса хранятся в файле cookie, который вы читаете на javaScript. Вы можете доступа конечно эти данные непосредственно из 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/

Вы можете получить UID с помощью метода GetUser() .....

Смежные вопросы