1

私はCookieを使用して自動ログインシステムを構築していますが、Cookieの機能の基本的な部分の1つが失敗します。それは、さまざまなセッション、またはページに対しても永続的ではないということです。ログインスクリプトでは、次のようにCookieを設定します。

setcookie('userID', $userID, time()+86400); // (edited after replies)

$userIDには値があります。
次に、$ _ COOKIE変数を出力すると、array(['base_usid'] => 1);と表示されます。これは良いことですが、ホームページをクリックして$ _COOKIE変数を出力すると、NULLと表示されます。
誰かが問題を見ていますか?

4

6 に答える 6

3

Cookieには、滞在する時間の値が必要です... http://php.net/manual/en/function.setcookie.phpを確認してください

つまり、次のように変更します。setcookie('userID'、$ userID、time()+ 86400); たとえば、1日滞在させるためです。

于 2010-05-04T14:41:50.730 に答える
3

ああ、私はクッキーについて何か新しいことを学びました:)クッキーにはパスがあり、そのパス(それらが作成されたディレクトリ)でのみ利用可能です。/ user / loginでCookieを作成し、/ news/indexで読み取ろうとしました。動作しません。
以前は、すべてのファイルを1つのフォルダーにまとめたWebサイトを構築していたので(悪いことはわかっています)、このCookieのプロパティを知りませんでした。申し訳ありませんが、私はマニュアルをもっとよく読むべきでした...
あなたの助けに感謝します!

追伸:入力print_r($_COOOKIE);してもデバッグは高速化されません。:(

于 2010-05-05T11:07:00.280 に答える
2

クッキーには有効期限が必要です。それ以外の場合、ユーザーがブラウザを閉じると、デフォルトで破棄されます。

于 2010-05-04T14:43:28.143 に答える
2

代わりにこれを試してください

setcookie("userID", $userID, time()+3600);

これは1時間続きます。数字を大きくして長持ちさせます。

設定を解除/削除するには、プラス+をマイナスに変更します-

:)

于 2010-05-04T14:44:07.663 に答える
1

有効期限を設定した後も機能しない場合(およびサーバーとクライアントの時計が正しいことを確認した場合)、Cookieが送信されていることを確認しましたか?「ヘッダーはすでに送信されています」の問題のように聞こえます。これは、エラーの報告/ロギングに問題があることも意味します。

C。

于 2010-05-04T16:51:02.763 に答える
0

CMSシステムとログインマネージャーを構築する方法を学びたいですか、それともアプリを構築したいですか...?これを行うのは嫌いですが、私の答えは次のとおりです。独自のログインシステムを構築しないでください。代わりに、CodeIgniter、Kohana、さらにはdrupalやJoomlaなどのフレームワークを入手してください。クッキーがどのように機能するかなどを理解するための学習体験としてログインシステムを構築している場合は、それを本番サイトに配置する予定がない限り、問題ありません。それ以外の場合は、十分にテストされたフレームワークを入手して使用します。

于 2010-05-04T19:15:37.007 に答える