phpcms v9如何在任意地方判斷會員的登陸狀態呢?在php中是比較好判斷的,代碼以下javascript
<?phpphp
if (!$_userid){java
echo"會員沒有登陸";jquery
}elseajax
{json
echo"會員登陸了";跨域
}cookie
?>圖片
但這代碼也有侷限性,在phpcms V9的黃頁模塊中無效!ip
在phpcms v9中咱們如何作到在任意模塊判斷會員登陸狀態,而且能夠靜態判斷會員登陸狀態呢?便可以用javascript判斷會員的登陸狀態!
因爲用javascript判斷會員狀態,就必須採用ajax,ajax就存在跨域問題,跟着如下方法作,就能夠解決任意模塊javascript判斷會員登陸狀態,而且解決了跨域問題。
第一步,在phpcms\modules\member中建一個文件checklogin.php
內容以下
<?php
/**
* ================================
* 檢測會員登陸狀態
*/
defined('IN_PHPCMS') or exit('No permission resources.');
class checklogin {
public function init(){
$callback = $_GET['jsoncallback'];//這東西是爲了解決跨域問題的
$_groupid = param::get_cookie('_groupid');
$_groupid = intval($_groupid);
if(!$_groupid) {
echo $callback.'(0)';
}else{
echo $callback.'(1)';
}
}
}
?>
第二步,在須要判斷會員登陸狀態的頁面添加以下javascript代碼,固然前提上必須是引用了jquery的
//判斷登陸狀態
$.getJSON("http://www.bnwin.com/index.php?m=member&c=checklogin&a=init&jsoncallback=?", function(data){
if(data=='1'){
//會員是登陸了的,能夠進行一系列操做如
$('#showdiv').show(); //顯示div
window.open('http://www.bnwin.com','_self');//打開新頁面
}else{
alert('須要登陸後查看!');
}
});
這樣即解決了任意模塊調用判斷會員登陸狀態,而且二級域名中使用也沒有關係,也就是解決了跨域問題!
演示效果 http://www.bnwin.com的圖片頻道的查看原圖,沒有登陸會提示登陸後查看,登陸後就不會提示!以及黃頁頻道會員狀態的判斷