-1

テキストフィールドを使用してWebページからconfig.phpファイルを編集できるシステムを作成しようとしています。これはWebページのコードですが、ここのWebページからconfig.phpを編集するとどうなりますかhttp://color -craft.info/dayzlegendz/controlpanel " を / に置き換え、構成が機能しなくなります

<?php

// First bring the actual value of the file:
$file = 'config.php';
// Uncomment next line to check if the file exists in the path
// print_r( glob( dirname(__FILE__) . "/*.php"  ) );

$configFile = html_entity_decode( file_get_contents($file) );

// On submit on the changes update the file
if ( isset( $_POST["save_button"] ) && $_POST["config_changes"]){
  # This doesn't work: $changes = $path = str_replace("\"", "'", $_POST["config_changes"]);
  file_put_contents($file, $_POST["config_changes"]);
}
header("Location: " . $_SERVER["SCRIPT_FILENAME"] );
?>

<html>
  <body>
    <!-- HTML form to send the changes to php -->
    <form method="post" action="file.php">
      <textarea name="config_changes"><?php echo $configFile ?></textarea>
      <button name="save_button">Save</button>
    </form>
  </body>
</html>

これはconfig.phpの私のコードです

<?php

$site_title = "Shopname";
$site_name = "Shopname"; 

$mainpage_header = "Welcome";

$mainpage_content = "Buy A Key"; 

$dbhost = "nolooky"; 
$dbuser = "nolooky"; 
$dbpass = "nolooky"; 
$db = "nolooky"; 

$price1 = "2.50"; 
$price1keys = "1"; 

$price2 = "5.00"; 
$price2keys = "2";

$price3 = "7.50";
$price3keys = "3";

$price4 = "10.00";
$price4keys = "4";

$price5 = "12.50";
$price5keys = "5";

$paypal_email = "myemail"; 
$confirm_email = "myemail";
$fulldomain = "mydomain";

?>
4

2 に答える 2

0

次の行は二重引用符を変換します

$configFile = html_entity_decode(file_get_contents($file));

以下のように変更できますか

$configFile = html_entity_decode(file_get_contents($file), ENT_NOQUOTES);
于 2013-04-13T07:58:45.437 に答える
0

サーバーで magic_quotes が有効になっているようです。ファイルに書き込む前にこれを入れてみてください。修正された場合は、そのままにしておくか、理想的には魔法の引用符を無効にするか、新しいphpバージョンにアップグレードしてください。

`

$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
    foreach ($val as $k => $v) {
        unset($process[$key][$k]);
        if (is_array($v)) {
            $process[$key][stripslashes($k)] = $v;
            $process[] = &$process[$key][stripslashes($k)];
        } else {
            $process[$key][stripslashes($k)] = stripslashes($v);
        }
    }
}
unset($process);

} ?>`

于 2013-04-13T08:54:03.120 に答える