PHP,将字符串保存到文本。 (的fputs)

时间:2012-12-17 19:35:01

标签: php html

PHP

<?php
if ($changefile) {
    $savedEdit = stripslashes($_POST['filetest']);
    $filetochange = "../dashboard/list.ini";
    $filetochangeOpen = fopen($filetochange,"w") or die ("Error editing.");
    fputs($filetochangeOpen,$savedEdit);
    fclose($filetochangeOpen) or die ("Error Closing File!");
}
?>

HTML表单

<form method=post action="mmtst.php">   
    <textarea rows="40" cols="60" name="filetest">
    <?
        // Implode CSS
        $filetochange = "../dashboard/list.ini";
        print (implode("",file($filetochange)));
    ?>
    </textarea><br/><br/>
    <input type="submit" value="Save Changes" name="changefile">
</form>

这里我有一个页面,在文本框中显示INI文件。应该发生的是,当我单击提交按钮时,将打开原始文件,并且fputs会使用txtbox中显示的任何内容写入原始文件。 (原始文件设置为权限777)。但是,单击提交按钮时没有任何反应,我不知道我做错了什么,任何建议都会很棒。

2 个答案:

答案 0 :(得分:1)

您正在检查

if ($changefile) {

你需要检查变量的$ _POST版本,就像你对“filetest”变量所做的那样,所以你应该举例......

if (isset($_POST["changefile"])) {

否则条件永远不会返回true,并且代码块不会被执行

答案 1 :(得分:1)

问题很简单,您已禁用register_globals并且您正在尝试使用它,此设置允许PHP根据GET和POST数据中的接收参数自动定义变量,但它被视为<强>不安全并且已被弃用

要访问帖子中传递的值以使用$_POST变量,请使用$_GET

if( isset( $_POST["changefile"] ) ) {

如果您只是想检查提交的帖子表单是否可以!empty($_POST)并保留提交按钮没有名称:

<?php //...
if( !empty($_POST) ) {
//...
?>
<input type="submit" value="Save Changes">