Добавление переменной в форму с использованием PHP - PullRequest
0 голосов
/ 08 февраля 2019

Я надеюсь, что этот вопрос ранее не задавался, но я ничего не нашел путем поиска.

Теперь у меня небольшая проблема, которую нужно решить ... Я хочу, чтобы мой веб-сайт переименовал содержимое папки.Веб-сайт перечисляет все содержимое папки с помощью scandir.Для редактирования имен есть поля ввода, предварительно заполненные текущими именами.Все это делается с помощью цикла for.Дело в том, что я хотел бы добавить в форму переменную, которая будет передана по почте в мое действие, когда форма отправлена, но без переменной в поле ввода.Суть в том, что мне нужно каким-то образом получить оригинальное имя файла для действия.Моя первая идея состояла в том, чтобы просто установить значение $ _POST вручную, но это не работает, так как это значение не будет специфичным для этой формы.

Есть ли способ сделать это?Или я должен просто использовать скрытое поле ввода, хотя это не кажется мне самым элегантным решением.

Спасибо за помощь!

РЕДАКТИРОВАТЬ:

    echo "<li><form action='rename.php' method='post'>";
    echo "<input type='text' name='nName' value=$dateiName>";
    echo "<input type='submit' value='ändern'></form></li>";

Это форма, которая создается несколько раз.Если использование скрытого ввода - это путь, я буду его использовать.Просто не нравится идея иметь поле ввода, которое невидимо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Ради "безопасности" вы можете использовать хеш оригинального имени файла в качестве ключа ввода массива:

<input type="text" name="filenames[<?php echo hash('sha256', $originalFileName) ?>]" />

После отправки формы вы можете выполнить цикл следующим образом:

$files = scandir($dir);
foreach ($_POST['filenames'] as $hash => $newname) {
    foreach ($files as $file) {
        if (hash('sha256', $file) === $hash) {
            rename(
                $dir . DIRECTORY_SEPARATOR . $file, 
                $dir . DIRECTORY_SEPARATOR . $newname
            );
        }
    }
}
0 голосов
/ 08 февраля 2019

Вам необходимо поле ввода (скрытое) с исходным значением имени файла.Затем вы должны сравнить исходное значение со значением в текстовом поле, и если значения отличаются, вы переименуете файл.Если у вас нет начального значения, вы не можете найти файл для переименования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...