0

次のコードを試しましたが、何が間違っているのかわかりません。フォームを2つの異なる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 を返します。これはテキストエリアに "" と表示されます。

于 2013-02-23T23:15:02.267 に答える
0

値は $_POST['file_picked'] に保存する必要があります

于 2013-02-23T22:46:23.930 に答える