写信给.php文件?

时间:2011-08-13 23:28:19

标签: php

嘿我正在尝试写入我的“config.php”文件,但它无法正常工作。我正在使用下面的代码。使用此代码时,它不会出现任何错误,只是不写字符串。

 $myFile = "config.php";
      $fh = fopen($myFile, 'w') or die("can't open file");
      $stringData = "<?php\n";
      fwrite($fh, $stringData);
      $stringData = "$db_user = '{$dbuser}';\n";
      fwrite($fh, $stringData);
      $stringData = "$db_pass = '{$dbpass}';\n";
      fwrite($fh, $stringData);
      $stringData = "$db_name = '{$dbname}';\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = 'localhost';\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = 'mysql_connect($db_host, $db_user, $db_pass) or die(mysq_error());\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = 'mysql_select_db($db_name) or die(mysql_error());\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = 'function protect($str) {\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = '   return mysql_real_escape_string(urldecode($str));\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = '}\n";
      fwrite($fh, $stringData);
      $stringData = "$db_host = '?>\n";
      fwrite($fh, $stringData);
      fclose($fh);

我做错了什么?

3 个答案:

答案 0 :(得分:2)

当你希望输出$字符时,你需要正确地转义$字符,如下所示:

$stringData = "\$db_user = '{$dbuser}';\n";

答案 1 :(得分:1)

看!如果你想写一些文件,如:

$stringData = "$db_host = 'localhost';\n";


你应该逃避它!

$stringData = "\$db_host = 'localhost';\n";


  $stringData = "$db_host = 'mysql_connect($db_host, $db_user, $db_pass) or die(mysq_error());\n";

为什么你引用了mysql函数????

答案 2 :(得分:1)

  

我做错了什么?

你做错的重要事情是混淆代码和数据。在Web服务器上使用自修改代码是一种灾难。

但假设您确实希望您的应用程序被黑客攻击并销毁...您需要转义对变量的引用以避免它们被插入。即。

fwrite($fh, '$db_user = ' . "'{$dbuser}';\n");

您还应该提供有意义的解释,说明为什么您的代码没有按预期运行(比“它不会起作用”更多的信息)。假设文件没有被编写/修改并且脚本被“无法打开文件”轰炸,这可能是一个权限问题 - 但由于你没有提供这是哪个操作系统的详细信息,我们无法告诉你如何解决这个问题。

你也引用了函数名称 - 这是否意味着你在运行时使用eval来调用自修改的coe? OMG!