【发布时间】:2009-05-09 15:05:01
【问题描述】:
我正在编写一个 PHP 应用程序,该应用程序具有一个“控制面板”,可以编写一个带有某些变量的 prefs 文件。在每个POST 上,如果文件不存在,则会创建它。如果它确实存在,它是unlinked,一个新文件是touched,具有相同的文件名和新变量。然后,此文件将包含在另一个页面上,并根据其中的变量显示内容。
$file = "phpsettings.php";
if (!file_exists($file)) {
touch($file);
$handle = fopen ($file, 'r+');
$str = "<?php \$pref1 = \"$mypref\"; ?>";
} else {
unlink($file);
touch($file);
$handle = fopen ($file, 'r+');
$str = "<?php \$pref1 = \"$mypref\"; ?>";
}
fwrite ($handle, $str);
fclose ($handle);
如果这个文件每天会被覆盖很多次,这是一种安全的编写首选项的方式吗?如果文件未正确保存,有什么好方法可以提醒此控制面板的用户,在这种情况下,避免破坏包含此首选项文件的页面的良好应急计划是什么?如果!(file_exists),则要填充的默认变量集?
【问题讨论】:
-
您的问题是,“使用文件将我的用户状态存储在我的应用程序中是否安全?”
-
考虑在 fopen 调用之后添加群调用。 php.net/flock