0

私はloginform.phpこのようなファイルにクッキーを作成しています:

$time = time();
setcookie('myusername', $myusername, $time +60*60*24*200); // Sets the cookie username
setcookie('myuserid', $rows['userid'], $time +60*60*24*200); // Sets the cookie password
setcookie('myname', $rows['name'], $time +60*60*24*200);

このファイルはlogin、私の Web サイトのルート ディレクトリにある という名前のフォルダーにあります。

loginform.phpルートディレクトリ内の他のファイルではなく、Cookieを取得できます..

何が問題なのですか?

4

2 に答える 2

3

Cookie が作成されると、そのルート パスが作成されたスクリプトのパスに設定されます。この場合は /login - Cookie にアクセスできない以下のものはすべて、setcookie に別のパラメーターとして「/」を追加します。

$time = time();
setcookie('myusername', $myusername, $time +60*60*24*200, '/'); // Sets the cookie username
setcookie('myuserid', $rows['userid'], $time +60*60*24*200, '/'); // Sets the cookie password
setcookie('myname', $rows['name'], $time +60*60*24*200, '/');
于 2013-01-12T10:15:25.180 に答える
2

マニュアルから、

Cookie が使用可能になるサーバー上のパス。「/」に設定すると、Cookie はドメイン全体で使用可能になります。「/foo/」に設定すると、Cookie は /foo/ ディレクトリと、ドメインの /foo/bar/ などのすべてのサブディレクトリ内でのみ利用可能になります。デフォルト値は、Cookie が設定されている現在のディレクトリです。

/どこからでもアクセスするには、Cookie パスを に設定する必要があります。したがって、次のようになります。

setcookie('myusername', $myusername, $time +60*60*24*200, '/'); 

ユーザー名やユーザー ID などの機密情報を Cookie に設定することはお勧めできません。誰もが価値を変えて別人になることができます。

Sessionを使用することをお勧めします。セッション ID も Cookie に保存されますが、別のセッション ID を推測するのは困難です。

于 2013-01-12T10:17:26.220 に答える