今天给各位分享discuz识别ua的知识,其中也会对discuz论坛进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、PHP 怎么识别手机访问
- 2、基于discuz的论坛是怎样鉴别和清除马甲账号的?
- 3、如何在PC上 开发 Discuz X3 触屏版 页面
- 4、discuz安装插件时 数据无法识别,请返回,是什么问题
- 5、discuz 模板安装提示:"数据类型错误,请返回",怎么解决?
1、PHP 怎么识别手机访问
网上现在有三种观点, 一种是基于浏览器发送的 User-Agent, 但明显这种方法是行不通的, 虽然有人列出了大多数的手机发送的User-Agent, 但依然会有很多手机无法识别, 甚至有些手机浏览器不发送User-Agent, 而且也不能保证以后就不会出新牌子.
下面是一个php的例子, 看过之后你就会知道有多么不可靠.
1. function is_wap(){
2. $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
3. $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|sie|philips|panasonic|alcatel|lenovo|cldc|midp|wap|mobile)/i";
4. if(($ua == '' || preg_match($uachar, $ua)) !strpos(strtolower($_SERVER['REQUEST_URI']),'wap')){
5. return true;
6. }else{
7. return false;
8. }
9. }
另外一种是判断HTTP_ACCEPT, 这种应该相对可靠一点, 不过HTTP_ACCEPT是非常复杂的, 如果一般的不支持html的浏览器还好说, 你只要判断浏览器支持wml并且不支持html就可以, 但如果浏览器同时支持wml和html那就难办了, 低端手机可能会将wml放到html的前面, 但是很多高端手机或者智能手机对html的支持很好, 所以html也会出现在wml前面.
这是黑莓手机发送的HTTP_ACCEPT
application/vnd.rim.html,
text/html,
application/vnd.wap.xhtml+xml,
text/vnd.sun.j2me.app-descriptor,
image/vnd.rim.png,image/jpeg,
application/x-vnd.rim.pme.b,
application/vnd.rim.ucs,
image/gif;anim=1,
application/vnd.rim.jscriptc;v=0-8-8,
application/x-javascript,
application/vnd.rim.css;v=1,
text/css;media=handheld,
application/vnd.wap.wmlc;q=0.9,
application/vnd.wap.wmlscriptc;q=0.7,
text/vnd.wap.wml;q=0.7,
*/*;q=0.5
夸张吧? 不过的确是很标准的, 开发人员可以根据这个得到很多信息, 但很多手机都没这么标准的, 如果你查看IE或者FF的HTTP_ACCEPT你会发现它很短.
text/html,
application/xhtml+xml,
application/xml;q=0.9,
*/*;q=0.8
同样, 给你个php的例子.
if (isset($_SERVER['HTTP_ACCEPT'])
(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')!==FALSE)
(strpos($_SERVER['HTTP_ACCEPT'],'text/html')===FALSE ||
(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')
strpos($_SERVER['HTTP_ACCEPT'],'text/html'))
)) {//手机访问
readfile('index.wml');
} else readfile('index.htm');
原理:如果浏览器支持WML、而且[不支持HTML]或[WML优先于HTML],则判定为手机。但实际上这个原理是不正确的.
还有一种是说判断网关或者IP什么的, 但我个人认为这个很不可靠, 手机的联网方式很多, 比如我开发的时候就是用模拟器的.这个应该不用什么例子了, REMOTE_ADDR 就足够了
2、基于discuz的论坛是怎样鉴别和清除马甲账号的?
识别马甲的方法有很多
但最有效的还是关联识别
比如 邮箱 浏览器版本 登录时间 浏览习惯 发帖规律
其实你再怎么换IP 你所在的城市IP段是固定的
所以就会出现一个情况
你在批量注册 网站后台发现 一段时间内 某个城市注册了大量账号
而且你注册账号多 发帖不可能多 原创不可能多
所以一堆马甲在一个城市 毫无贡献0积分
或者说 换来换去都在看那一个帖子
一个城市很多人只关注一个不相干的贴 或者集中注册却不发帖
这种几率简直就是0
必定是马甲
3、如何在PC上 开发 Discuz X3 触屏版 页面
1.如果想在PC浏览器查看手机版页面,首先要在Discuz管理后台启用手机版功能,然后才能看到手机版。
2.然后怎么在浏览器查看手机版呢,打开一般都是pc版吧,这个疑问很好解决,现在的浏览器都有切换UA(user-agent)的功能,程序判断是否手机就看这个UA。
这里我推荐用chrome浏览器,(实话说吧,前端开发不用chrome,你还是前端开发员吗)。
4、discuz安装插件时 数据无法识别,请返回,是什么问题
要在应用中心安装正版插件
看插件版本和编码是否适合你的discuz站点
还有错误的话可以向DZ应用中心提交
5、discuz 模板安装提示:"数据类型错误,请返回",怎么解决?
很多同学在安装discuz插件、Discuz模板或disucz分类信息的时候会出现数据类型错误,请返回的问题,下面我们来分析下为什么Discuz! X会出现“数据类型错误,请返回”的错误。
分析原理:我们今天用安装模板提示“数据类型错误,请返回”的错误来分析,打开导入风格模板的代码文件:/source/function/function_importdata.php,查看其中的函数 import_styles(),其中两处调用getimportdata的参数都是固定的getimportdata('Discuz! Style'),在/source/function/function_admincp.php中找到getimportdata函数发现他会将第一个参数也就是'Discuz! Style',与模板目录下xml文件中id为Title的item值进行比较,如果不同就会提示错误“数据类型错误,请返回”,知道原理了,下面就有解决方案了。
1、打开模板目录下的 XML 文件,找到ID为Title的item项,将其固定为如下写法就OK了。
item id="Title"![CDATA[Discuz! Style]]/item
复制代码
2、一些网站在搬家后出现“数据类型错误,请返回”,很可能是服务器上PHP.INI 的 zend.ze1_compatibility_mode问题,把值修改为 OFF。
可上传一个test.php 里面写?php echo ini_get(‘zend.ze1_compatibility_mode’);?,输出0来判断配置是否正确。
解决方法:查找 php.ini 里的如下项并将其设置为off,然后重启 Web 服务 (IIS或Apache)
zend.ze1_compatibility_mode = Off
复制代码
3、目录权限存在问题,在应用中心安装插件或模板都需要对应目录有可写权限的,否则安装一样会出错无法识别数据错误。
解决方法:检查data目录权限及template和source\plugin目录权限为777或可读可写。
这样基本可以解决问题。
参考文档
关于discuz识别ua和discuz论坛的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。