Редактирование файла с помощью формы

266
19 апреля 2017, 14:11

Если 1 раз отредактировать, то всё нормально, но если сразу же повторно отредактировать, то вылазит ошибка, из-за того, что файл уже отредактирован и старого уже не существует.

Как тут быть? Сделать переадрессацию или изменить url с помощью JS?

index.php

<?php
header('Content-Type: text/html; charset=utf-8');
$dir = './files';
$files1 = scandir($dir);
?>
<ul>
<?php
foreach($files1 as $file){
    $info = new SplFileInfo($file);
    if($info->getExtension() === 'txt'){
        echo '<li><a href="./files/' .basename($file) .'">' .basename($file) .'</a> <a href="./redact.php?val=' . basename($file) .'">Редактировать</a></li>';
    }
}
?>
<ul>

redact.php

<?php
header('Content-Type: text/html; charset=utf-8');
error_reporting(-1);
?>
<form action="" method="get">
    <p>Изначальное название файла <?php
                                    if(!empty($_GET['val'])){
                                        $valueGet = $_GET['val'];
                                        echo $valueGet;
                                    }
                                    if(!empty($_GET['f'])){
                                        $valueGet = $_GET['f'];
                                        echo $valueGet;
                                    }
                                    ?>
    </p>
    <label for="red">Изменить на </label>
    <input type="text" id="red" name="red">
    <input type="hidden" value="<?php echo $valueGet?>" name="f">
    <input type="submit" value="Применить">
<form>
<?php
    if(!empty($_GET['red'])){
        $newName = rename('./files/' . $_GET['f'], './files/' . $_GET['red'] . '.txt');
        if($newName){
            echo 'Изменено на ' . $_GET['red'] . '.txt';
        }
        else{
            die('Ошибка');
        }
    }
?>
READ ALSO
Qt5 | Переходы между формами

Qt5 | Переходы между формами

Есть два класса, пусть будет Форма 1 и Форма 2, который созданы в Qt desingerЯ хочу их завязать между собой

238
Разбиение кода на функции. С++

Разбиение кода на функции. С++

Есть код программы, которая позволяет ввести динамический массив, а затем 1Упорядочивает элементы массива по возрастанию

258
Возвращение значения

Возвращение значения

Мне нужно, чтобы в случае неверного ввода password запрашивало password до тех пор пока не будет password верен

160