0

Cookie を設定しようとしていますが、設定されていません。

$hp = explode('=', $hp);
$shp = $hp[0];

echo $hp_id=$hp[1];

if(empty($_cookie['betahomepage1'])) {
    setcookie('betahomepage1',$hp_id,$expire,"/");
    echo "cookie not set";   
} else {
    echo "cookie is set";   
}
4

2 に答える 2

2

PHP関数で問題が発生した場合は、すべてのパラメーターを再確認し、それらに関するPHPマニュアルを読み直してください。

問題の関数は次のとおりです。

あなたが書いた:

setcookie('betahomepage1', $hp_id, $expire , "/"   , "https://www.mtsbeta.com");
                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
          $name          , $value, $expire , $path , $domain 

ドメインパラメータHTTPURIではありません。それはただのドメインです:

domainCookieを使用できるドメイン
。ドメインをに設定する'www.example.com'と、wwwサブドメイン以上のサブドメインでCookieを使用できるようになります。'example.com'などの下位ドメインで利用可能なCookieは、などの上位サブドメインで利用可能になります'www.example.com'非推奨の»RFC2109をまだ実装している古いブラウザでは、先頭に。が必要な場合があります。すべてのサブドメインに一致します。

于 2012-08-14T23:44:46.253 に答える
0

すべての Cookie を含む PHP の定義済み変数が呼び出され$_COOKIEます (大文字に注意してください) 。マニュアルのページを参照してください

PHP の変数は大文字と小文字を区別するため、明示的に別の場所に設定しない限り、$_cookie比較対象の変数は になります。NULL

つまり、Cookie が設定されていますが、正しく取得されていません。

また、Cookie をデバッグする良い方法は、FireBug (または Chrome 開発者ツール) を使用することです。ブラウザでアクティブなすべての Cookie を表示できます。

デバッグ中に PHP で Cookie が設定されていることを確実に確認したい場合はvar_dump($_COOKIE)、現在のリクエストにどの Cookie が設定されているかを明確に示す を選択できます。

于 2012-08-15T00:20:17.083 に答える