@redcap152

Почему не получается задать переменную?

Здравствуйте! Подскажите пожалуйста:
есть рабочий код:
<?php
// получаем путь к файлу из поля ввода path
$path = ($_POST ['path'] != '') ? $_POST ['path'] : false;
 
if (isset($_POST['submit-path'])) {  //Действия по нажатию "Open"
    if ($path) $content = file_get_contents ($path);
    else echo "Не введен путь!";
}
 
if (isset($_POST['submit-content'])) {  //Действия по нажатию "Save"
    $buffer = $_POST ['content']; //получаем content из поля ввода в переменную buffer
    if ($buffer) file_put_contents ($path, $buffer); echo "Файл успешно сохранён";
}
?>
 <div id = "editform">
<form method = "post">
 
    <input type = "text" name = "path" value = "<?=$path?>">
    <br>
    <input type = "submit" name = "submit-path" value = "Open">
 <br>
    <textarea cols = "60" rows = "40" name = "content" id = "content" value = ><?=$content;?></textarea>
    <br>
    <input type = "submit" name = "submit-content" value = "Save">
</form>
</div>

   
<select name = "fselector">
 <?php 
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) { 
        if ($file != "." && $file != "..") { 
            echo "<option>$file\n</option>"; 
        } 
    }
    closedir($handle); 
}
?>

Делает он следующее:
клиент смотрит список файлов, в поле path вбивает его имя, из поля path с помощью POST запроса формируется переменная $path нажимает кнопку Open и в переменную $content .записывается содержимое этого файла. Затем переменная $content отображается в поле content. Клиент может изменить содержимое файла (редактирует поле content) и нажимает кнопку "Save", после чего содержимое переменной $buffer пишется в искомый файл. Но если поменять текстовое поле на селектор, всё перестаёт работать:
<?php
// получаем путь к файлу из селектора fselector
$path = $_POST ['fselector'];
 
if (isset($_POST['submit-path'])) {  //Действия по нажатию "Open"
    if ($path) $content = file_get_contents ($path);
    else echo "Не введен путь!";
}
 
if (isset($_POST['submit-content'])) {  //Действия по нажатию "Save"
    $buffer = $_POST ['content']; //получаем content из поля ввода в переменную buffer
    if ($buffer) file_put_contents ($path, $buffer); echo "Файл успешно сохранён";
}
?>
 <div id = "editform">
<form method = "post">
 
   
    <br>
    <input type = "submit" name = "submit-path" value = "Open">
 <br>
    <textarea cols = "60" rows = "40" name = "content" id = "content" value = ><?=$content;?></textarea>
    <br>
    <input type = "submit" name = "submit-content" value = "Save">
</form>
</div>
<div id = "list">
<select name = "fselector">
 <?php 
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) { 
        if ($file != "." && $file != "..") { 
            echo "<option>$file\n</option>"; 
        } 
    }
    closedir($handle); 
}
?>
</select>
</div>

Если быть точным, то
if (isset($_POST['submit-path'])) {  //Действия по нажатию "Open"
    if ($path) $content = file_get_contents ($path);
    else echo "Не введен путь!";
пишет, что путь не введён (т.е. переменная $path не задана).
Также буду благодарен, если подскажете, как открывать файл на редактирование (чтение) по клику по имени файла, а при клике по директории открывалась другая директория.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@NosFire
у тебя селектор за формой, соответственно, он не попадает в пост
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы