PHPCMS通过getJSON调用的地址回调函数一直无法执行

PHPCMS通过getJSON调用的地址回调函数一直无法执行,第1张

PHPCMS通过getJSON调用的地址回调函数一直无法执行

遇到了一个getJSON的问题,回调函数一直无法实现,检查全部没有问题,但是是alert返回的数据。有类似情况的盆友可以参考以下。

今日碰到一个getJSON的难题,回调函数一直没法实行,查验了形成的json数据的格式肯定没问题,getJSON的js语法也没问题,但便是alert不出来传回的数据。原来是phpcms的check_hash()涵数对远程控制启用的方式开展了身份验证,方式名中没public_的都不可以根据

复制代码编码以下:
/**
*查验hash值,认证客户数据安全系数
*/
finalprivatefunctioncheck_hash(){
if(preg_match('/^public_/',ROUTE_A)||ROUTE_M=='admin'&&ROUTE_C=='index'||in_array(ROUTE_A,array('login'))){
returntrue;
}
if(isset($_GET['pc_hash'])&&$_SESSION['pc_hash']!=''&&($_SESSION['pc_hash']==$_GET['pc_hash'])){
returntrue;
}elseif(isset($_POST['pc_hash'])&&$_SESSION['pc_hash']!=''&&($_SESSION['pc_hash']==$_POST['pc_hash'])){
returntrue;
}else{
showmessage(L('hash_check_false'),HTTP_REFERER);
}
}

phpcms给涵数开展了hash认证,因而,如今方式是那样写的:

复制代码编码以下:
publicfunctionpublic_mobile_getjson_ids(){//publc是之后再加上去的
$modelid=intval($_GET['modelid']);
$id=intval($_GET['id']);
$this->db->set_model($modelid);
$tablename=$this->db->table_name;
$this->db->table_name=$tablename.'_data';
$r=$this->db->get_one(array('id'=>$id),'mobile_type');
if($r['mobile_type']){
$relation=str_replace('|',',',$r['mobile_type']);
$relation=trim($relation,',');
$where="idIN($relation)";
$infos=array();
$this->mobile_db=pc_base::load_model('mobile_type_model');
$datas=$this->mobile_db->select($where,'id,type_name');
//$this->db->table_name=$tablename;
//$datas=$this->db->select($where,'id,title');
foreach($datasas$_v){
$_v['sid']='v'.$_v['id'];
if(strtolower(CHARSET)=='gbk')$_v['type_name']=iconv('gbk','utf-8',$_v['type_name']);
$infos[]=$_v;
}
echojson_encode($infos);
}
}

js一部分的getJSON是那样写的:

复制代码编码以下:
//显示信息加上型号
functionshow_mobiletype(modelid,id){
$.getJSON("?m=content&c=content&a=public_mobile_getjson_ids&modelid="modelid"&id="id,function(json){
varnewrelation_ids='';
if(json==null){
alert('沒有加上相关文章');
returnfalse;
}
$.each(json,function(i,n){
newrelation_ids="<liid='"n.sid"'>·<span>"n.type_name"</span><ahref='javascript:;'class='close'onclick=\"remove_relation('"n.sid"',"n.id")\"></a></li>";
});
$('#mobile_type_text').html(newrelation_ids);
});
}

就好了。要留意phpcms里边启用远程控制详细地址,方式前再加上public啊!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存