0

我尝试了以下代码,但我无法弄清楚我做错了什么。我知道我通过将表单分布在两个不同的 div 中来打破规则,但我不知道有任何其他方法。

<?php
echo '<form name="form" method="POST">';
$directory = '/var/www/admin/html/content';
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
echo 'Files<br>';
while($it->valid()) {
    if(!$it->isDot()) {
        echo '<input type="radio" name="file_picked" value="content/' . $it->getSubPathName() . ' " id="file_picked" />' . $it->getSubPathName() . '</br>';
    }
    $it->next();
}

echo '<input type="submit" name="pickedName" value="Edit File" /></div>
<div class="editor">
<h1>SS Code Editor</h1>';

$file_picked = $_POST['file_picked'];
$edit_field  = $_POST['edit_field'];

if(isset($_POST['pickedName'])) {
    //get file contents and display in textarea box
    $theData = file_get_contents($file_picked);
    echo "<textarea name=\"edit_field\" id=\"edit_field\" cols=\"100\" rows=\"60\">";
    echo $theData;
    echo "</textarea><br />";
}

if(isset($_POST['submitChanges'])) {
    //grab new textarea contents and put into file.
    $theData = file_put_contents($file_picked, $edit_field);

    //redraw textarea with new contents
    $theData = file_get_contents($file_picked);
    echo "<textarea name=\"edit_field\" id=\"edit_field\" cols=\"100\" rows=\"60\">";
    echo $theData;
    echo "</textarea><br />";
}
?>
<input type="submit" name="submitChanges" value="Save">
</form>
4

2 回答 2

1

您在复选框输入值的末尾有一个额外的空间:

代替 :

value="content/' . $it->getSubPathName() . ' " id="...

和 :

value="content/' . $it->getSubPathName() . '" id="...

所以 file_get_contents($file_picked = $_POST['file_picked'])) 没有找到任何文件(末尾有空格)并返回 false,在 textarea 中显示为“”。

于 2013-02-23T23:15:02.267 回答
0

您的值应存储在 $_POST['file_picked']

于 2013-02-23T22:46:23.930 回答