0

我正在使用Facebook的JavaScript SDK登錄我的網站。點擊登錄按鈕後,我將使用ajax的Facebook名稱和個人資料圖片URL發送給PHP,並將名稱存儲在DataBase中,並將個人資料圖片URL和名稱分配給會話變量。當我將此會話變量傳遞給我的網站的個人資料頁面時,我獲得了正確的Facebook名稱,但個人資料圖片網址已損壞。我只獲得了一半的網址。網址中'&'符號旁邊的所有內容均缺失。這是我應該得到的原始URL。我得到這個由作爲登錄屏幕在PHP會話中存儲Facebook個人資料圖片URL

https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/9444_10203017119044199_1059615267418985652_n.jpg?oh=5d5c541aa8c7c99d7c5bf5ce9ec2e718&oe=54E265CB&__gda__=1420508157_9882b31d641e2b27ef486c2ee7c61ad0

在同一頁面顯示圖像,但我得到這個

https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/9444_10203017119044199_1059615267418985652_n.jpg?oh=5d5c541aa8c7c99d7c5bf5ce9ec2e718

所以鏈接獲取中間的某個地方打破,而通過Ajax發送。我哪裏做錯了?這是我在PHP腳本Ajax和getPhoto功能

function getUserInfo() { 
    FB.api('/me', function(response) { 

    var fbid = response.id; 
    var fbname = response.name; 
    var fbemail = response.email; 
    var datastring = 'fbid1=' +fbid+ '&fbname1=' +fbname+ '&fbemail1=' +fbemail+ '&fbphoto1=' +fbphoto; 
    $.ajax({ 
     type: "POST", 
     url: "http://www.uniwink.com/landing/php_includes/fb_cred_store.php", 
     data:datastring, 
     cache:false, 
     success: function(data){ 
     if(data == "success"){ 
     window.open("profile.php","_self"); 
     } else { 
     window.open("index.php","_self"); 
     } 
    } 
    }); 
    }); 
} 

function getPhoto() 
{ 
    FB.api('/me/picture?type=large', function(response) { 
    window.fbphoto = response.data.url; 
    }); 

}` 

回答

1

編碼fbphoto使用encodeURIComponent方法,然後http://php.net/manual/en/function.urldecode.php當回聲-ING值到瀏覽器。

var datastring = 'fbid1=' +fbid+ '&fbname1=' +fbname+ '&fbemail1=' +fbemail+ '&fbphoto1=' +encodeURIComponent(fbphoto); 

和PHP

$photourl = urldecode($photourl); 
echo $photourl; 
+0

這工作就像一個魅力。謝謝 :) – Anbu369 2014-10-29 14:56:10

相關問題