2017-01-03 4 views
0

これは私の初めてのクッキーです。私はそれを働かせることができなかったので、私は文字通りw3schoolsの例をコピーして貼り付けました。 「試してみよう!ページを自分のウェブサイトから読み込みますが、ローカルホスト上の自分のファイルからコードを実行すると、クッキーは設定されません。 "Cookieという名前の 'user'が設定されていません!毎回。setcookie()はクッキーを設定していません

 $cookie_name = "user"; 
     $cookie_value = "John Doe"; 
     setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 

     if(!isset($_COOKIE[$cookie_name])) { 
      echo "Cookie named '" . $cookie_name . "' is not set!"; 
     } else { 
      echo "Cookie '" . $cookie_name . "' is set!"; 
      echo "Value is: " . $_COOKIE[$cookie_name]; 
     } 

これは、ページなどをリダイレクトしません。それは単にクッキーを設定しません。私はChromeとMAMPを使用しています。 ChromeではCookieが有効になっており、php.iniでもCookieが有効になっているようです。私もfirefoxとsafariで実行しようとしました。助けてください。

+0

'setcookie()'はすぐに '$ _COOKIE []'を変更しません。 – mario

+0

setcookieの前にファイルに他の出力がないことは確かですか? – swordbeta

答えて

0

setcookie()は、残りのHTTPヘッダーと共に送信されるクッキーを定義しています。他のヘッダーと同様に、スクリプトからの出力の前にクッキーを送信する必要があります(これはプロトコルの制限です)。これには、タグや空白を含む出力の前に、この関数を呼び出す必要があります。

クッキーが設定されたら、$ _COOKIE配列で次のページの読み込み時にアクセスできます。クッキー値は$ _REQUESTにも存在します。

関連する問題