0

4台の異なるマシンから4人のユーザーがログインしているとしましょう。このサイトはオークションに関するものです。各オークションの日付は変更されません。私はこのようなことをすることができますか?

$_SERVER['auctions'][0]['name'] = 'Auction 1';

そして、4人のユーザーのいずれかがログインし、次のコードがある場合:

print $_SERVER['auctions'][0]['name'];

4つすべてが同じ結果になりますか?言い換えれば、これは、頻繁に変更されないものをキャッシュするために使用できる、ある種のグローバルメモリですか?または、これを行うためのより良い方法はありますか?

4

2 に答える 2

1

$ _SERVER変数は、PHPがWebサーバーに関する情報とサーバーベースの情報を返すために使用します。データを保存する場所ではありません。$ _SERVERの内容は、スクリプトが実行されるたびに生成され、そこに保存したり、スクリプトの別のインスタンスで取得したりすることはできません。

memcachedのようなものを使用して、一般的なデータを保存できます。memcachedは、共有メモリ/キャッシュの形式として機能し、インストールと使用が簡単です。配列を作成してファイルにシリアル化し、json_encode => file_put_contentsのように再読み込みして保存し、file_get_contents=>json_decodeのように取得することもできます。セッションはユーザーごとであり、複数のユーザー間で共有するという要件に適さないため、セッションは避けてください。

于 2013-02-16T15:20:04.273 に答える
0

オークションはデータベースに保存する必要があると思います。

セッションにデータを保存することは、複数のユーザーがCookieに同じセッション識別子を持っている場合の唯一のオプションです。しかし、これはいくつかの深刻なセキュリティ問題を引き起こす可能性があります。

$_SERVERページをリロードするたびに配列が完全に更新されるようです。

于 2013-02-16T15:18:07.497 に答える