fopen和fwrite PHP的问题


Issue with fopen and fwrite PHP

我在写入文件VarLog.txt时遇到问题,它不是只读的(在属性中),我正试图将变量或SQL查询作为字符串写入我创建的日志文件中,我还写了一个检查VarLog是否存在,如果不存在,就创建它

   if (!file_exists( "VarLog.txt")) {
    $fh = fopen("VarLog.txt", 'w') or die("can't open file");
    fclose($fh);
}
function anti_injection($sql) {
   $fp = fopen("VarLog.txt", "a+");  
   $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|'*|--|'''')/"),"",$sql);
   $sql = trim($sql);
   $sql = strip_tags($sql);
   $sql = addslashes($sql);
   fwrite($fp, "SQL Query/String: $sql"); 
   fclose($fp);
   return $sql;
}

$_POST变量示例

anti_injection($_POST['email']);

除了第一次检查文件是否存在并创建它是多余的之外,代码本身没有出现任何错误。

  1. 删除文件VarLog.txt(如果存在)以排除所有权问题
  2. 检查您的工作目录是什么。您现在的路径不是绝对路径,因此文件将相对于当前工作目录写入(使用getcwd()查找该路径,然后在那里进行检查)