2

目標は、カスタム セッション ファイルのリポジトリを作成することです。このコードを使用してデータをセッション ファイルに書き込むと、php は、名前は異なるが同じ内容の 2 つのファイルを作成します。なぜこうなった?

$uniqFileName = sha1(uniqid('', true)) . '.sess';
$path = '/storage/sessions/';
$sessionContent = ['name' => 'SomeName', 'age' => 'SomeAge'];
file_put_contents($path . $uniqFileName, serialize($sessionContent));

これにより、同じ内容のファイルが一度に 2 つ作成されます。

0b2399001549e543d067ea28c6561a1b752f58a9.sess
685fcb86fc7310d58e1154ca6b6d029630bb6d56.sess

両方のファイルの内容:

a:2:{s:4:"name";s:8:"SomeName";s:3:"age";s:7:"SomeAge";}

これはクラスになると理解されていますが、コードはクラスのコンテキストでも index.php でも同じように機能します。

4

1 に答える 1

4

これらの名前は両方とも を使用して異なるためuniq()、コードが確実に 2 回呼び出されていることを意味します。それを探してください。このコード セクションには、1 回または 2 回の呼び出しが必要です。それ自体では起こりません。

于 2016-02-09T08:08:26.800 に答える