2011-02-09 18 views
0

サイトにクッキーを設定しようとしています(存在しない場合)。それは動作していません。クッキーがPHPに存在しない場合は設定できません

if(isset($_COOKIE['about'])){ 
    $_COOKIE['about'] += 1; 
} 
if(!isset($_COOKIE['about'])){ 
    setcookie("about", 1, time()+3600); 
} 

私はまたsetcookie呼び出しがheader()にちょうどエイリアス(ただし、従うように特定のスキーマを持つ)であるとして、あなたはまだユーザーに情報を送信していないことを確認してください

if(empty($_COOKIE['about'])){ 
    setcookie("about", 1, time()+3600); 
} 
+0

私はあなたが 'setcookie'を常に使う必要があると思うので、setcookie(" about "、$ _ COOKIE ['about'] + 1、time()+ 3600);' idk – JCOC611

+0

あなたに戻って、私はクッキーがまったく設定されていないことを伝えることができますが、二重チェックをお願いします。 – mcbeav

+0

ありがとう!それは働いているようですが、issetはうまくいかず、ただ空が私のために働いています。答えとして撃ってください。私はあなたに信用を与えることができます。おそらく私は間違っています。 – mcbeav

答えて

2

あなただけ正常にそれを設定してみてください、スーパーグローバル$_COOKIEからのものを読むことができます:

setcookie("about",$_COOKIE['about']+1,time()+3600); 

だから、すべて一緒:

if(isset($_COOKIE['about'])){ 
    $_COOKIE['about'] += 1; 
}else{ 
    setcookie("about", 1, time()+3600); 
} 

注場合は、前にチェックした他の、クッキーが設定されているので、再度チェックする必要はありません。

1

を試してみました。エラー出力が無効になっている可能性があり、メッセージが欠落しているため、動作しているように見えますが、バックグラウンドでは失敗しています。

setcookieは、セッションを開始してheaderを設定してページの最初の呼び出しの1つにする必要があります。

4

$_COOKIEスーパーグローバルは、値の読み取り専用です。新しいCookieヘッダーがブラウザに送信される必要があるため、Cookieを書き込んでもCookieは更新されません。 sessionsはクッキーを使用している方が良いでしょう.POSTではクッキーを明示的に保存/設定せずにセッションを変更できるためです。

関連する問題