내 사이트에는 정식 버전과 모바일 버전이 있습니다. 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
의 순서를 반전했지만 여전히 작동하지 않습니다.
휴대 기기에서 쿠키를 사용할 수 있습니까? 에 상관없이, 그것은 가정 어떤 클라이언트 모바일은없는 있도록
는 * 업데이트 *
나는 조건 전에 $type = 'mobile';
을 추가했다. 그런 다음 랩톱의 Chrome을 사용하여 테스트했으며 쿠키가 확실히 활성화되었습니다. 모바일 버전 (ok)으로 이동하지만 switch
을 클릭해도 여전히 정식 버전으로 이동하지 않습니다. 그래서 쿠키 자체의 문제입니다.
쿠키는 기본적으로 금지되어 있지 않습니다. 모바일 브라우저가 현재 쿠키를 허용하지 않을 수 있으므로 쿠키를 사용하도록 설정하면됩니다. – Wesley
'header ('Location : /index.php')와 같이 switch.php 헤더의 실제 경로를 사용하십시오. ' – Rufinus
@Rufinus가 작동하지 않습니다. 'setcookie' 사용에 문제가 있습니까? – DrXCheng