Переключение между мобильным и полным сайтом - PullRequest
1 голос
/ 11 декабря 2011

Все мои полные страницы сайта находятся в папке public_html, которая содержит index.php, и папке m, которая содержит все страницы мобильного сайта. index.php это так:

<?php
  if (...mobile client) {
    header('Location: m/');
  } else {
    include 'front.html.php';
  }
?>

Существует также index.php в m, просто `include 'front.html'.

Этот сценарий может автоматически определять клиент пользователя и напрямую переходить на полный сайт и мобильный сайт.

Но теперь я хочу, чтобы ссылка на мобильном сайте перешла на полный сайт. Если это похоже на <a href="../front.html.php">switch to full site</a>, в адресной строке будет front.html.php, и я не хочу этого. Однако, если он похож на <a href="../">switch to full site</a>, он обнаружит снова и вернется на мобильный сайт.

Как с этим бороться?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Вы можете сделать это, установив файл cookie.

  setcookie("forceClient", "full", time()+3600);

Затем из этого php-скрипта перенаправьте на домашнюю страницу.

В вашем index.php проверьте куки:

if($_COOKIE["forceClient"] == "full"){
  //logic
}
1 голос
/ 11 декабря 2011

Создать переменную сеанса как

$_SESSION['viewer_type'] = "Mobile";

или

$_SESSION['viewer_type'] = "Regulare";

, а затем определите новую переменную, назовите ее base_url и сохраните в сеансе. и сделай это

if($_SESSION['viewer_type'] == 'Mobile'):
     $_SESSION['base_url'] = "http://www.m.site.com/";
else:
     $_SESSION['base_url'] = "http://www.site.com/"; 
endif; 

ссылка теперь будет

<a href="<?php echo $_SESSION['base_url'] ?>front.html.php">Test</a>

Вам необходимо устанавливать переменную сеанса каждый раз, когда вид меняется с мобильного на обычный или наоборот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...