我有一个完整的站点,它一直在操作系统商务中,移动站点是核心PHP(codeignator),完整版本和子域上的移动版本。
例如完整站点:www.example.com
,移动站点域为m.example.com
。当用户在手机中打开完整的网站域时,网站会重定向到适当的移动域,但如果移动用户想查看完整的网站,则用户可以在手机中查看完整的站点。
我已经用它来完成重定向http://code.google.com/p/php-mobile-detect/,但它不会重定向到完整的站点或使用会话的移动站点。我知道我必须使用PHP SESSIONS和REQUEST才能正常工作,但我不确定如何在这种情况下使用它们,所以你能建议如何使用会话解决这个重定向问题吗?
我的代码是:
session_start();
include('includes/Mobile_Detect.php');
$detect = new Mobile_Detect;
if(isset($_REQUEST['fullsite']) && $_REQUEST['fullsite'] == 'yes')
{//check if fullsite view request from mobile or website?
$_SESSION['fullsite']="yes";
if($detect->isMobile()) {
$_SESSION['website']="mobile";
}
else{
$_SESSION['website']="computer";
}
$deviceType = header('Location: https://www.example.com/');
}
else
{
if($_SESSION['website'] =="mobile" && $_SESSION['fullsite'] !="yes")
{
if($detect->isTablet())
{
$deviceType = 'tablet';
}
else
{
$deviceType = 'phone';
}
$deviceType = header('Location: https://m.example.com/');
}
elseif($_SESSION['website'] =="computer" && $_SESSION['fullsite'] =="yes")
{
$deviceType = 'computer';
$deviceType = header('Location: https://www.example.com/');
}
else{
$deviceType = 'computer';
}
$scriptVersion = $detect->getScriptVersion();
session_destroy();
}
根据我从github页面得到的信息,你应该能够让它像这样工作:
index.php
session_start();
if ($_GET['fullscreen'] == 'yes') {
$_SESSION['fullscreen'] = 1;
} else if ($_GET['fullscreen'] == 'no') {
$_SESSION['fullscreen'] = 0;
}
if (false == isset($_SESSION['fullscreen']) && ($_SESSION['fullscreen'] == 0)) {
// If session['fullscreen'] has not been set (maybe first visit
// or the user does not what in fullscree
// check the device and do redirect
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect();
// Any mobile device (phones or tablets).
if ( $detect->isMobile() ) {
}
...
}
// Other code here
当从手机访问时,如果用户想要完整版本,请提供一个带有GET参数fullscreen=yes
的url锚点(http://example.com?fullscreen=yes)如果在完整的网站上并检测到移动设备(不包括在上面的代码中),您可以提供一个链接到带有fullscreen=no
的移动版本