PHPのsetcookieを使用してスマホサイトとPCサイトを切り替える方法



最近では以前ご紹介した
モバイル、フィーチャー・フォンキャリア別、PCサイトブラウザ別で振分けをPHPで行う方法
だけで無く、スマホからのアクセスの際にPCサイトに切替え出来る様に、
とのリクエストもありましたのでその方法をご紹介します。
 

1.PCサイト側のPHPの記述

<?php
$vmode = "";

if(isset($_GET['vmode'])) {	//スマホサイト側からパラメータを受け取った場合
	$vmode = $_GET['vmode'];
	setcookie("vmode", $vmode, null, "/");	//パラメータをクッキーにセット
}else if(isset($_COOKIE['vmode'])){
	$vmode = $_COOKIE['vmode'];
}

if($vmode != "pc" || $vmode == "") {
	$str_ua = "(iPhone|iPod|Android.*Mobile|BlackBerry)";
	if(preg_match($str_ua, $_SERVER['HTTP_USER_AGENT']) != 0) {
		setcookie("vmode", "sp", null, "/");
		 header("Location: sp-site.php");	//スマホからのアクセスの場合はスマホページに切替え
	}
}
?>

スマホからPCサイトに直接アクセスした場合は、スマホサイトに切替えを行い、
パソコンからのアクセスの場合はそのままコンテンツを表示します。
スマホから切替えボタンクリックの(パラメータを受け取った)場合は
クッキーに値を設定しPCサイト(コンテンツ)を表示させます。

 

2.PCサイト側のHTMLの記述

<a href="index.php?vmode=sp">>スマートフォンサイトに切り替える</a>

 

3.スマートフォンサイト側のHTMLの記述

<a href="index.php?vmode=pc">>PCサイトに切り替える</a>

リンクにPC用とスマホ用のパラメータを設定するだけです。
 
PHPのsetcookieを使用してスマホサイトとPCサイトを切り替えるデモ(PCサイト側)ページ

PHPのsetcookieを使用してスマホサイトとPCサイトを切り替えるデモ(スマートフォンサイト側)ページ
 

じゃあもうスマホ用のサイトいらないじゃーんってグチったりしてます。