phpcms V9静态判断会员登陆状态的方法

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的图片频道的查看原图,没有登陆会提示登陆后查看,登陆后就不会提示!以及黄页频道会员状态的判断

相关文章
相关标签/搜索