Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当移动网站版本使用PHP时,如何检测桌面网站?_Php_.htaccess_Mobile_Responsive Design_Browser Detection - Fatal编程技术网

当移动网站版本使用PHP时,如何检测桌面网站?

当移动网站版本使用PHP时,如何检测桌面网站?,php,.htaccess,mobile,responsive-design,browser-detection,Php,.htaccess,Mobile,Responsive Design,Browser Detection,我下载了一个网站模板,其中包括移动和桌面的单独布局。我把文件上传到服务器上,我的移动网站正常工作,但我的桌面网站不工作。桌面网站给了我一个“内部服务器错误”。我的错误日志中说:“头文件之前的脚本输出结束:index.php”。我尝试过处理.htaccess文件,但我认为这不是问题所在 我的index.php文件包括两个php文件,它们有助于检测要使用的布局。这两个文件是config.php和detect.php,它们位于名为“app”的文件夹中 index.php <?php includ

我下载了一个网站模板,其中包括移动和桌面的单独布局。我把文件上传到服务器上,我的移动网站正常工作,但我的桌面网站不工作。桌面网站给了我一个“内部服务器错误”。我的错误日志中说:“头文件之前的脚本输出结束:index.php”。我尝试过处理.htaccess文件,但我认为这不是问题所在

我的index.php文件包括两个php文件,它们有助于检测要使用的布局。这两个文件是config.php和detect.php,它们位于名为“app”的文件夹中

index.php

<?php
include "app/config.php";
include "app/detect.php";

if ($page_name=='') {
include $browser_t.'/index.html';
}
elseif ($page_name=='index.html') {
include $browser_t.'/index.html';
}
elseif ($page_name=='home.html') {
include $browser_t.'/home.html';
}
elseif ($page_name=='features.html') {
include $browser_t.'/features.html';
}
elseif ($page_name=='about.html') {
include $browser_t.'/about.html';
}
elseif ($page_name=='demo.html') {
include $browser_t.'/demo.html';
}
elseif ($page_name=='contact.html') {
include $browser_t.'/contact.html';
}
elseif ($page_name=='contact-post.html') {
include $browser_t.'/contact.html';
include 'app/contact.php';
}
else
{
    include $browser_t.'/404.html';
}

?>

app/config.php

<?php
$current_page_uri = $_SERVER['REQUEST_URI'];
$part_url = explode("/", $current_page_uri);
$page_name = end($part_url);
$email_id = "w3layouts@gmail.com";
?>

app/detect.php

<?php
$userBrowser = $_SERVER['HTTP_ACCEPT']; 
if(stristr($userBrowser, 'application/vnd.wap.xhtml+xml')) 
{
$_REQUEST['wap2'] = 1;
}

elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPod"))
{
$_REQUEST['iphone'] = 1;

}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPhone"))
{
$_REQUEST['iphone'] = 1;

}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"Android"))
{
$_REQUEST['Android'] = 1;

}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"IEMobile"))
{
$_REQUEST['IEMobile'] = 1;

}
elseif(stristr($userBrowser, 'DoCoMo/' || 'portalmmm/'))
{
$_REQUEST['imode'] = 1;
}

elseif(stristr($userBrowser, 'text/vnd.wap.wml')) 
{
$_REQUEST['wap'] = 1;
}
elseif(stristr($userBrowser, 'text/html')) 
{
$_REQUEST['html'] = 1;
}


 if(!defined('WAP'))
         define('WAP', isset($_REQUEST['wap']) || isset($_REQUEST['wap2']) ||   isset($_REQUEST['imode'])|| isset($_REQUEST['html'])|| isset($_REQUEST['Android'])|| isset($_REQUEST['iphone'])|| isset($_REQUEST['IEMobile']));

if (WAP)
{
define('WIRELESS_PROTOCOL', isset($_REQUEST['wap']) ? 'wap' : (isset($_REQUEST['wap2']) ? 'wap2' : (isset($_REQUEST['iphone']) ? 'iphone' : (isset($_REQUEST['imode']) ? 'imode' : (isset($_REQUEST['IEMobile']) ? 'IEMobile' :(isset($_REQUEST['html']) ? 'html' : (isset($_REQUEST['Android']) ? 'Android' : '')))))));  

if (WIRELESS_PROTOCOL == 'wap')
  {
$browser_t = "mobile";
  }
elseif (WIRELESS_PROTOCOL == 'wap2')
  {


$browser_t = "mobile";


  }
elseif (WIRELESS_PROTOCOL == 'imode')
  {

$browser_t = "mobile";

  }
  elseif (WIRELESS_PROTOCOL == 'iphone')
  {


$browser_t = "smartphone";

  }
  elseif (WIRELESS_PROTOCOL == 'Android')
  {


$browser_t = "smartphone";

  }
   elseif (WIRELESS_PROTOCOL == 'IEMobile')
  {

$browser_t = "smartphone";

  }
  elseif (WIRELESS_PROTOCOL == 'html')
  {

 $mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
strtolower($_SERVER['HTTP_USER_AGENT']))){
$mobile_browser++;
}

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
$mobile_browser++;
}

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$mobile_browser++;
}
    if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$mobile_browser=0;
}


if($mobile_browser>0){

// do something wap

$browser_t = "mobile";

}
// non-mobile
else
{

$_SESSION['Browser_d'] = "web";
$browser_t = "web";

}
   } else {

     // do something else html

$_SESSION['Browser_d'] = "web";
$browser_t = "web";
    }

  }


else
{
$mobile_browser = '0';

 if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
strtolower($_SERVER['HTTP_USER_AGENT']))){
$mobile_browser++;
}

if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
$mobile_browser++;
}

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');

if(in_array($mobile_ua,$mobile_agents)){
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$mobile_browser=0;
}


    if($mobile_browser>0){
       // do something wap

$browser_t = "mobile";

}
// non-mobile
else
{
$_SESSION['Browser_d'] = "web";
$browser_t = "web";
}

}
 ?>

我相信错误在detect.php文件中,但我不确定如何修复它。同样,移动网站可以正常工作,而桌面网站不能正常工作。在进行故障排除时,我能够让桌面正常工作,但只有当我删除detect.php文件中的所有内容并留下以下内容时:

<?php $_SESSION['Browser_d'] = "web";
$browser_t = "web";?>

非常感谢你的帮助

谢谢


Jon

?删除结尾处的
,并确保正在加载
会话_start()代码。您将其标记为
.htaccess
,我看不到任何引用,只是一提。引号是我在将代码输入stackoverflow时的一个输入错误。好吧,既然您使用的是会话,
会话_start()仍然需要加载。@Fred ii很抱歉提及。htaccess。当我在谷歌上搜索我得到的500个内部服务器错误时,我发现很多人都得到了这个错误,因为他们需要调整.htaccess文件。它可能不适用于我正在做的事情,因为detect.php文件的行为类似于htaccess文件。这不是问题。尝试暂时删除
.htaccess
,或者只使用所需的部分,看看这是否能消除500错误。如果是这样,那么问题就出在这里。据我所知,您的代码似乎已验证。