国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

解決PHPCMS使用getJSON調用的地址方法無效

2024-09-10 07:16:13
字體:
來源:轉載
供稿:網友

今天遇到一個getJSON的問題,回調函數一直無法執行,檢查了生成的json數據的格式絕對沒問題,getJSON的js語法也沒問題,但就是alert不出來傳回的數據,原來是phpcms的check_hash()函數對遠程調用的方法進行了安全驗證,方法名前沒public_的都不能通過,代碼如下:

  1. /** 
  2.  * 檢查hash值,驗證用戶數據安全性 
  3.  */ 
  4.  
  5. final private function check_hash() { 
  6.  if(preg_match('/^public_/', ROUTE_A) || ROUTE_M =='admin' && ROUTE_C =='index' || in_array(ROUTE_A, array('login'))) { 
  7.   return true; 
  8.  } 
  9.  if(isset($_GET['pc_hash']) && $_SESSION['pc_hash'] != '' && ($_SESSION['pc_hash'] == $_GET['pc_hash'])) { 
  10.   return true; 
  11.  } elseif(isset($_POST['pc_hash']) && $_SESSION['pc_hash'] != '' && ($_SESSION['pc_hash'] == $_POST['pc_hash'])) { 
  12.   return true; 
  13.  } else { 
  14.   showmessage(L('hash_check_false'),HTTP_REFERER); 
  15.  } 

phpcms給函數進行了hash驗證,因此,現在方法是這樣寫的,代碼如下:

  1. public function public_mobile_getjson_ids() {//publc是后來加上去的 
  2.  $modelid = intval($_GET['modelid']); 
  3.  $id = intval($_GET['id']); 
  4.  $this->db->set_model($modelid); 
  5.  $tablename = $this->db->table_name; 
  6.  $this->db->table_name = $tablename.'_data'
  7.  $r = $this->db->get_one(array('id'=>$id),'mobile_type'); 
  8.  
  9.  if($r['mobile_type']) { 
  10.   $relation = str_replace('|'','$r['mobile_type']); 
  11.   $relation = trim($relation,','); 
  12.   $where = "id IN($relation)"
  13.   $infos = array(); 
  14.   $this->mobile_db = pc_base::load_model ( 'mobile_type_model' ); 
  15.   $datas = $this->mobile_db->select($where,'id,type_name'); 
  16.   //$this->db->table_name = $tablename; 
  17.   //$datas = $this->db->select($where,'id,title'); 
  18.   foreach($datas as $_v) {//開源軟件:Vevb.com 
  19.    $_v['sid'] = 'v'.$_v['id']; 
  20.    if(strtolower(CHARSET)=='gbk'$_v['type_name'] = iconv('gbk''utf-8'$_v['type_name']); 
  21.    $infos[] = $_v
  22.   } 
  23.   echo json_encode($infos); 
  24.  } 
  25. }  

js部分的getJSON是這樣寫的,代碼如下:

  1. //顯示添加機型 
  2. function show_mobiletype(modelid,id) { 
  3.  $.getJSON("?m=content&c=content&a=public_mobile_getjson_ids&modelid="+modelid+"&id="+id, function(json){ 
  4.   var newrelation_ids = ''
  5.   if(json==null) { 
  6.    alert('沒有添加相www.111cn.net關文章'); 
  7.    return false; 
  8.   } 
  9.   $.each(json, function(i, n){ 
  10.    newrelation_ids += "<li id='"+n.sid+"'>·<span>"+n.type_name+"</span><a href='javascript:;' class='close' onclick="remove_relation('"+n.sid+"',"+n.id+")"></a></li>"
  11.   }); 
  12.  
  13.   $('#mobile_type_text').html(newrelation_ids); 
  14.  });  
  15. }  

就好了,要注意phpcms里面調用遠程地址,方法前加上public啊.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳曲县| 三河市| 蒙阴县| 龙陵县| 繁峙县| 庆安县| 都兰县| 阳西县| 屏山县| 昌江| 自治县| 鲁山县| 曲靖市| 福州市| 泉州市| 比如县| 五家渠市| 泾源县| 唐山市| 西盟| 江油市| 个旧市| 大方县| 军事| 金秀| 淮阳县| 彩票| 磐安县| 汽车| 南皮县| 东乡| 伊宁市| 肇源县| 涟源市| 瑞昌市| 四会市| 扶余县| 洛扎县| 子长县| 阳高县| 余江县|