掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在為長沙某公司開發(fā)企業(yè)官網(wǎng)的時(shí)候,我是使用WordPress來作為開發(fā)的,因?yàn)檫@個(gè)項(xiàng)目非常小,就是發(fā)布信息,用戶登錄注冊(cè)及預(yù)約,因此采用這種較為敏捷的開發(fā)方式。查詢WordPress相關(guān)資料后得知其實(shí)它本身就已經(jīng)封裝好了一個(gè)方法來進(jìn)行登錄操作,這就是wp_signon(WordPress官方文檔)。
wp_signon()方法用于授權(quán)給用戶登陸wordpress并可記住該用戶名稱。該函數(shù)取代了wp_login。WordPress 2.5版本起啟用,該方法在wp-includes/user.php中,使用方法為:
wp_signon( $credentials, $secure_cookie );
【參數(shù)說明】
$credentials:(array) (可選) 登陸用戶信息;Default: None
$secure_cookie:(boolean) (可選) 決定是否使用安全cookie;Default: None
注意:如果沒有提供 $credentials, wp_signon 使用 $_POST 參數(shù)(鍵值為 “l(fā)og”, “pwd” 和 “rememberme”)。
【函數(shù)返回值】
(object),登陸失敗返回對(duì)象WP_Error,登陸成功則返回WP_User。
在谷歌中這個(gè)沒有任何問題,但I(xiàn)E中發(fā)現(xiàn)這樣做有一點(diǎn)問題,至于具體原因還沒有完全弄清楚,這里寫一下作為一個(gè)記錄吧。因?yàn)闀簳r(shí)使用了一個(gè)感覺有點(diǎn)兒不著邊的方法避免了這個(gè)問題。這個(gè)問題就是:當(dāng)使用IE瀏覽器的時(shí)候,第一次使用這個(gè)方法登錄完全正常,但退出之后再次登錄卻登錄不上(這個(gè)方法返回的是成功,但不能獲取任何有關(guān)用戶的信息),而且清空IE瀏覽器緩存又可以正常登錄并獲取用戶信息。
在臨時(shí)處理方法中是在退出的時(shí)候強(qiáng)制進(jìn)行session清空操作,但這里就納悶了,按理說這里的session跟IE或者還是chrome客戶端沒什么關(guān)系吧,但為什么這么清空卻正常呢?這里先記錄以下,有時(shí)間再深入分析一下,順便在這里貼出退出時(shí)強(qiáng)制清空session的在function.php中的代碼。
add_action('init','session_manager'); function session_manager(){ session_start(); } add_action('wp_logout', 'session_logout'); function session_logout() { session_destroy(); }
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流