2015-10-16 61 views
0

我已經嘗試bascially一切,以得到這個工作。這裏的chatLogin功能,我目前有:Codeigniter - Cometchat - 集成錯誤(不連接到ci_sessions)

function getUserID() { 
$userid = 0; 

if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') { 
    $_REQUEST['basedata'] = $_SESSION['basedata']; 
} 

if (!empty($_REQUEST['basedata'])) { 
    $userid = $_REQUEST['basedata']; 
} 

if (!empty($_COOKIE['ci_session'])) { 
    $uid = unserialize($_COOKIE['ci_session']); 
    if(!empty($uid['uid'])){ 
     $userid = $uid['uid']; 

    } 
} 

return $userid; 

}

的用戶標識保存在cookie uid,它不會不管什麼工作。

這就是錯誤日誌中顯示我:

[16-OCT-2015 1時14分46秒UTC] PHP注意:反序列化():錯誤在偏移0 40字節/應用/MAMP/htdocs/cometchat/integration.php on line 49 [16-Oct-2015 01:14:46 UTC] PHP警告:無法修改標題信息 - 已經發送的標題(輸出開始於/ Applications/MAMP/htdocs/cometchat/integration.php:49)in /Applications/MAMP/htdocs/cometchat/cometchat_init.php on line 180

任何幫助,高度讚賞。我一直在搜索這個確切的問題超過3小時,沒有運氣。非常感謝你們。

+0

'NULL'必須不加引號。那樣它就是另一個字符串。考慮數據類型。 'NULL!=='NULL'' – Tpojka

+0

只需在登錄時設置一個名爲「uid」的cookie,然後從中取出。 –

+0

@AlecSmart,但是安全嗎?如果只是這樣放的話,他們可以欺騙uid嗎? –

回答

1

$ _COOKIE ['ci_session']只是您的網絡服務器中會話ID的指針。您無法從反序列化中獲取任何信息(請注意,您從錯誤日誌中獲得的第一個PHP通知是因爲反序列化無效格式值)。

如果您保存爲用戶標識爲uid,只需使用$ _COOKIE ['uid']即可獲得。

而關於你的getUserId有問題。如果你在會議第一尋找用戶ID,然後請求,然後餅乾,正確的方法是:

function getUserID() 
{ 
    if (isset($_SESSION['basedata'])) return $_SESSION['basedata']; 
    if (isset($_REQUEST['basedata'])) return $_REQUEST['basedata']; 
    if (isset($_COOKIE['uid'])) return $_COOKIE['uid']; 
    return 0; 
} 

問候,