나는이 코드를 사용자가 선택한 도시를 기억할 수 있도록 캐시 시스템 유형을 위해 노력하고 있습니다. 사용자가 도시를 선택한 경우 세션과 쿠키에 도시를 저장하고 이전에 도시 페이지로 리다이렉트합니다. ...setcookie가 작동하지 않는 빈 값으로
세션은 잘 작동하지만,이 $ _GET [ '도시'] 변수가 빈 상태 (empty)의 경우 빈 값으로 쿠키를 설정하지 않는 것
을 heres 내 코드 :
function gen_url ($city)
{
$url = 'http://www.mysite.com';
if (!empty($city)) $url .= "/c-$city";
return $url;
}
function set_cache ($variable, $value)
{
$_SESSION[$variable] = $value;
setcookie($variable, $value, time() + 31536000);
}
$redirect = false;
$redirect_array['city'] = '';
if (!empty($_GET['city']))
{
$sql = mysql_query("select * from `cities` where `slug`='".mysql_real_escape_string($_GET['city'])."'");
if (mysql_num_rows($sql) != 0)
{
while ($row = mysql_fetch_assoc($sql))
{
foreach ($row as $k => $v)
$city[$k] = $v;
}
$redirect_array['city'] = $city['slug'];
}
else
{
$redirect = true;
}
}
if ($redirect)
{
header('Location: '.gen_url($redirect_array['city']);
die();
}
set_cache('city', $redirect_array['city']);
답장을 보내 주셔서 감사합니다. 내가 찾은 PHP의 모든 버전 (5.6.10 참고)은 http://stackoverflow.com/q/37464332/469643에서 정확하지 않습니다. 일부 버전에서는 공백 값 **을 설정하면 ** 성공하고 문서에서는 ** 이전 호출 **이없는 경우 어떤 일이 발생해야하는지 명확하게 알 수 없습니다. 더 깊은 통찰력을 갖고 있다면 내 질문에 여전히 답이 필요합니다. – veeTrain