PHP

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

PHPのsetcookieを使用してスマホサイトとPCサイトを切り替える方法をご紹介します。

setcookieを使用してスマホサイトとPCサイトを切り替えるためのPCサイト側のPHPの記述

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

<?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サイト側のHTMLリンクの記述

※パラメータにvmode=spを設定します。

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

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

※パラメータにvmode=pcを設定します。

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

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

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

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

 
※流用される場合は自己責任でお願いします。