私のサイトには完全版とモバイル版があります。 URLを入力すると、index.php
はフルバージョンまたはモバイル版に誘導するユーザーのクライアントを検出します。これは正常に動作します。デスクトップクライアントのユーザーは、モバイル版に切り替えることもできます。しかし、私は、モバイルクライアントのフルバージョンへの切り替えからユーザーに問題があります。コードはここにある:このクッキーはなぜ機能しないのですか?
// index.php
<?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('...',substr($useragent,0,4))) {
$type = 'mobile';
} else {
$type = 'full';
}
if ($type == 'mobile' and $_COOKIE['switch'] != 'full') {
header ('Location: m/');
} else {
include './front.html.php';
}
?>
// m/switch.php page when user click
<?php
setcookie('switch', 'full', time() + 60);
header('Location: ../');
?>
は、私はまた、setcookie
とheader
の順序を逆にしているが、まだ動作しません。
モバイルデバイスではCookieを使用できませんか?
*更新*
ように関係なく、携帯を想定しているものをクライアント、私は、条件の前に$type = 'mobile';
を添加していません。その後、ラップトップからChromeを使用してテストしました。クッキーは確実に有効になっています。モバイル版(ok)ですが、switch
をクリックしても完全版にはなりません。クッキー自体の問題です。
デフォルトではCookieは禁止されていません。モバイルブラウザが現在のところCookieを受け入れていない可能性があります。これを有効にすることができます。 – Wesley
'header( 'Location:/index.php');' – Rufinus
のようにswitch.phpヘッダの実際のパスを使用してください。 'setcookie'の使用に何か問題はありますか? – DrXCheng