これらのデータを処理するスクリプトにデータを投稿するフォームがあります。処理後、ユーザーは自分のメイン ページにリダイレクトされます。このメイン ページで、いくつかのセッション値をクリアする関数を呼び出します。
function clearSessionValues(){
file_put_contents('evil.txt', chr(10) . date('Y-m-d h:i:s', time()), FILE_APPEND);
$sessionValues = $_SESSION;
foreach($sessionValues as $key=>$value){
if($key != 'angemeldet' && $key != 'username' && $key != 'usergroup'){
unset($_SESSION[$key]);
}
}
}
面白いことに、フォームを処理するスクリプトで、$_SESSION
配列からいくつかの値が欠落しています。メイン ページの関数呼び出しまたはこの関数のコマンドをコメント アウトすると、すべて正常に動作します。これの理由は何ですか?
関数の名前を変更しようとしました。また、関数呼び出しをログに記録しようとしましたが、関数が呼び出されました。処理が終わっていないようですが、リダイレクトが行われます。値がアクセスされる前にクリアされるほど高速です。スクリプトの先頭に必要な値を保存します...
これに対して私は何ができますか?