php判断页面是电脑登录还是手机登录
首先说最根本的解决方法:
手机访问时,会附带发送user-agent信息,这个信息里面会有手机号码信息,那么如果能取得手机号码,则可以肯定是通过手机wap访问的。但是目前
中国移动已经屏蔽了user-agent信息,所以获取不到手机号码。有关系的朋友可以联系移动公司,把wap网站服务器的ip提交给中国移动,加入白名
单后即可取得ua信息。目前中国联通可以直接取到手机号,对联通用户此方案可完美实施。
接下来说我的解决方案:
手机访问,原理是手机通过移动公司的代理服务器进行的访问。那么我们就可以理解是一台普通电脑使用了代理服务器。当手机通过代理服务器访问的时候,http头信息会毫无疑问的包含一个信息:via。这个信息提供了有价值的判断信息。
例如河南移动取得的via信息是:
http/1.1 hazz-b-gw001-wap(infox-wisg, huawei technologies)
河南联通的via信息是:
zxwap gateway,zte technologies
其他各省的http头信息和这个大同小异,判断是否手机访问的方案就出来了:获取http的via信息字符串看是否包含wap字符,如果有则是通过手机访
问。这样做的结果是没有人能伪造手机访问,判断绝对准确。
自然,这样对于网上流行的手机wap模拟器也做了屏蔽----从根本上屏蔽。
class wap{
function check_wap() {
return stristr($_SERVER['HTTP_USER_AGENT'],"App") ? true : false;
}
}
// check over
$wapjq=new wap;
$wapjqs=$wapjq->check_wap();
if($wapjqs=='true'){
header("Location: http://www.junqing.com/wap.php");
}
else{
header('Location:install/index.php');
exit();
}
也可以判断手机型号,不同的手机使用不同的浏览样式
$theusagt = $_SERVER["HTTP_USER_AGENT"];
$is_mobile = false;
if(stripos($theusagt , "iPhone") !== false || stripos($theusagt , "iPod") !== false){
//$thetargetsite = $siteurl_mobile;
$is_mobile = true;
}
else if(stripos($theusagt , "Mac OS") !== false){
//$thetargetsite = $siteurl_pc;
$is_mobile = false;
}
else if(stripos($theusagt , "Mobile") !== false){
//$thetargetsite = $siteurl_mobile;
$is_mobile = true;
}
else if(stripos($theusagt , "Android") !== false){
//$thetargetsite = $siteurl_pc;
$is_mobile = false;
}
else if(stripos($theusagt , "Windows Phone") !== false){
//$thetargetsite = $siteurl_mobile;
$is_mobile = true;
}
else {
//$thetargetsite = $siteurl_pc;
$is_mobile = false;
}
class wap{
function check_wap() {
return stristr($_SERVER['HTTP_USER_AGENT'],"App") ? true : false;
}
}
// check over
$wapjq=new wap;
$wapjqs=$wapjq->check_wap();
if($wapjqs='true'){
header("Location: http://www.junqing.com/wap.php");
}
else{
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
php判断页面是电脑登录还是手机登录的更多相关文章
- php怎么判断网页是电脑访问还是手机访问
.第一种方法 <?php function check_wap() { ) { ;$i<count($list);$i++){ ){ ...
- js判断页面是pc打开还是手机打开
<script type="text/javascript"> function browserRedirect() { var sUserAgent = naviga ...
- PHP判断当前页面是电脑登录,还是手机登录
//判断是否是电脑登录,还是手机登录 public function isMobil() { $useragent = isset($_SERVER['HTTP_USER_AGENT']) ? $_S ...
- ASP.NET判断是否为手机登录
protected void Page_Load(object sender, EventArgs e) { MobileHandle(); } 页面加载时候判断是否为手机登录 protected v ...
- apache通过.htaccess(rewrite)判断手机电脑跳转-手机用户重定向到手机版
自动判断.重定向的办法也有几种: 使用网站构建的程序(例如PHP)来判断.重定向:使用服务器上的Web服务(例如Apache)来判断.重定向. 在Apache中设置重定向有两个办法: 在网站的http ...
- php判断访问的当前设备是手机还是电脑
<?php function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AG ...
- php如何判断电脑访问还是手机访问?
手机上网用户数量越来越大,如今各网站都推出了手机网站,电脑用户访问时直接访问电脑版网页,当用户通过手机访问网站时则跳自动跳转到手机版网页,下面给大家分享一段php中判断电脑访问还是手机访问的代码: & ...
- [jquery]判断页面滚动到顶部和底部(适用于手机web加载)
//判断页面滚动到顶部和底部 $(window).scroll(function(){ var doc_height = $(document).height(); var scroll_top = ...
- JS判断登陆端是PC还是手机
前些天朋友问我怎么判断登陆端是PC还是手机...自己也是很困惑,然后自己查了资料,这些东西都藏在USER-AGENT里面,查了他的一些属性,写了一个简单的验证页面大家共同学习. 读取navigator ...
随机推荐
- java实现点卡生成
点卡主要有2部分:卡号和密码.卡号一般由数字组成,密码就不多说了. java中随机数很强大,大家可以自己查.卡号生成使用java中随机数,密码使用uuid,密码可以自己再加点东西之类的.下面是完整代码 ...
- windows查看某个端口被谁占用
XAMPP Error: Apache shutdown unexpectedly. 解决思路 我建议首先 运行在cmd中运行 (安装目录)apache/bin/httpd.exe 无法启动apach ...
- mfc控件与其对应的对象的关联方法
对话框的控件与其对应类的对象相关联:(两种方法) (1) 通过CWnd::DoDataExchange函数进行关联: 用VC++6.0的MFC ClassWizard中的Member Var ...
- OO alv report
DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid ,"ALV对象 gt_fieldcat TYPE lvc_t_fcat , "ALV字段控 ...
- Visual Studio的SDK配置
Visual Studio的SDK Visual Studio 6.0自带的SDK是1998年的,目录为C:\Program Files\Microsoft Visual Studio\VC98\,这 ...
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标
注:(图中每个条目和图标都是由代码动态生成) 代码动态布局,并须要为每个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" 父x ...
- #pragma 预处理指令详解
源地址:http://blog.csdn.net/jx_kingwei/article/details/367312 #pragma 预处理指令详解 在所有的预处理指令中, ...
- DataSnap起源于MIDAS(十几篇博客)
作为MIDAS起始于Delphi3,Delphi4是MIDAS II,Delphi5中是MIDASIII,而后基于COM远程数据模块方式使用TCP/IP,HTTP,(D)COM构建出强大的通讯能力.从 ...
- sqlserver 自学笔记 函数实训 学分学期转换函数的设计
设计目的: 1.运用sql基本知识,编写学期转换函数. 2.运用sql基本知识,编写学分转换函数,将考试成绩转换为学分 3.通过上述函数的编写与调试,熟练掌握 sql函数的编写.调试与使用方法. 设计 ...
- 以对象管理资源——C++智能指针auto_ptr简介
auto_ptr是C++标准库提供的类模板,它可以帮助程序员自动管理用new表达式动态分配的单个对象.auto_ptr对象被初始化为指向由new表达式创建的对象,当auto_ptr对象的生命期结束时, ...