phpcms v9如何在任意地方判斷會員的登錄狀態呢?在php中是比較好判斷的,代碼如下
<?php
if (!$_userid){
echo"會員沒有登錄";
}else
{
echo"會員登錄了";
}
?>
但這代碼也有局限性,在phpcms V9的黃頁模塊中無效!
在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的圖片頻道的查看原圖,沒有登錄會提示登錄后查看,登錄后就不會提示!以及黃頁頻道會員狀態的判斷