PHP读写文件

时间:2010-11-21 20:44:57

标签: php file

糟糕!我想到了。不得不剥去斜线......

您好,我有以下代码在浏览器中编辑我的配置文件。检索文件内容并将其显示在文本框中。然后将编辑内容保存回文件中。在我的开发机器上一切正常,但在我的托管帐户中,它不起作用。

当我保存文件时,所有单引号都被覆盖,在它们前面添加反斜杠。

如何更改代码以防止此问题?谢谢!

<?php
// button javascript
$save_changes_js = "return confirm('Do you want to SAVE the CHANGE(S)?');";

// open web config
$filename = ROOT_PATH.'web.config.php';
$contents = file_get_contents($filename);

if(isset($_POST['txbConfig']) && !empty($_POST['txbConfig']))
{
    // save changes to file
    $changes = $_POST['txbConfig'];
    file_put_contents($filename,$changes);

    // refresh page
    $destination_url = SITE_URL.'admin/edit-config.php';
    header('Location:'.$destination_url);
}
?>

<form action="" method="post" name="editConfig" class="htmlForm">
  <div class="editConfigWrap">
    <textarea name="txbConfig"><?php echo $contents ?></textarea>
  </div>
  <input name="submit" type="submit" value="Save Changes" class="gvbtn" onclick="<?php echo $save_changes_js; ?>">
</form>

2 个答案:

答案 0 :(得分:0)

您已启用'magic quotes'。它们绝不是神奇的。

您可以通过get_magic_quotes_gpcget_magic_quotes_runtime检查此设置并撤消魔术,例如

$value=get_magic_quotes_gpc()?stripslashes($_REQUEST['value']):_REQUEST['value'];

答案 1 :(得分:0)

这是因为您的ISP仍然启用了Magic Quotes。理想情况下,让他们关闭它或找到一种方法为您的帐户配置它。

如果无法做到这一点,则需要使用stripslashes或同等效果。请参阅此其他问题:How to turn off magic quotes on shared hosting?