私はこのコードを持っているので、ユーザが選択した都市を記憶するようにキャッシュシステムのタイプをしようとしています。ユーザーが都市を選択した場合、セッションやクッキーに保存されます。以前に選択した都市ページに自動的にリダイレクトされます。setcookieが空の値になっていない
セッションが正常に動作しますが、$ _GET [「都市」]変数が空である場合には、空の値にCookieを設定していないようです...
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