phpcms V9靜態判斷會員登錄狀態的方法


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的圖片頻道的查看原圖,沒有登錄會提示登錄后查看,登錄后就不會提示!以及黃頁頻道會員狀態的判斷


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM