0

phpMyAdmin にログインするたびに、新しいセッション ストア ファイルが作成され、決して削除されないことに気付きました。明確にさせてください:

phpMyAdmin にログインすると、値が「44f4d5s4f4f4d5s」である phpMyAdmin という名前の Cookie として PHP セッション ID が渡されていることがわかります。 (「44f4d5s4f4f4d5s」)。このようにして、このセッション ストレージ ファイルが PHPMyAmdin セッションに関連付けられていることがわかります。PHPMyAdmin は単にセッションを使用しているだけです。しかし、ブラウザーを閉じて再度 PHPMyAdmin を参照すると、新しいセッション ID が作成され、異なる値の新しい Cookie が送信され、もちろん新しい sess_[ID HERE] ファイルが作成されます。そして、古いものはディスクから削除されず、新しいセッションが作成されたために使用されていないため、ディスクスペースを食べて永遠にそこに残ると思います!

この動作が望ましくないことはほぼ確実です。おそらく、phpMyAdmin が session_destroy() を呼び出していないのでしょうか?

config.inc.php を添付しますが、なぜこれが起こっているのかを知るためにどこから始めればよいかわかりません。

<?php
/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/* End of servers configuration */

$cfg['blowfish_secret'] = '.......';
$cfg['DefaultLang'] = 'en';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

ありがとう。

4

1 に答える 1

1

これらのセッション ファイルはそこに永遠に残るわけではありません。PHP はセッション ガベージ コレクションを行います。 http://php.net/manual/en/sessionhandler.gc.phpを参照してください。

于 2013-10-16T16:34:26.613 に答える