За последние 24 часа нас посетили 40090 программистов и 2357 роботов. Сейчас ищут 1224 программиста ...

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

Тема в разделе "PHP для новичков", создана пользователем Dimon2x, 18 апр 2017.

  1. Dimon2x

    Dimon2x Старожил

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

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


    index.php

    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3.  
    4. $dir = './files';
    5.  
    6. $files1 = scandir($dir);
    7.  
    8. ?>
    9.  
    10. <ul>
    11. <?php
    12. foreach($files1 as $file){
    13.     $info = new SplFileInfo($file);
    14.     if($info->getExtension() === 'txt'){
    15.    
    16.         echo '<li><a href="./files/' .basename($file) .'">' .basename($file) .'</a> <a href="./redact.php?val=' . basename($file) .'">Редактировать</a></li>';
    17.     }
    18. }
    19. ?>
    20. <ul>
    redact.php

    PHP:
    1. <?php
    2. header('Content-Type: text/html; charset=utf-8');
    3. ?>
    4.  
    5. <form action="" method="get">
    6.     <p>Изначальное название файла <?php
    7.                                     if(!empty($_GET['val'])){
    8.                                         $valueGet = $_GET['val'];
    9.                                         echo $valueGet;
    10.                                     }
    11.                                     if(!empty($_GET['f'])){
    12.                                         $valueGet = $_GET['f'];
    13.                                         echo $valueGet;
    14.                                     }
    15.                                     ?>
    16.     </p>
    17.    
    18.     <label for="red">Изменить на </label>
    19.     <input type="text" id="red" name="red">
    20.     <input type="hidden" value="<?php echo $valueGet?>" name="f">
    21.     <input type="submit" value="Применить">
    22. <form>
    23.  
    24. <?php
    25.     if(!empty($_GET['red'])){
    26.         $newName = rename('./files/' . $_GET['f'], './files/' . $_GET['red'] . '.txt');
    27.         if($newName){
    28.             echo 'Изменено на ' . $_GET['red'] . '.txt';
    29.         }
    30.         else{
    31.             die('Ошибка');
    32.         }
    33.        
    34.     }
    35. ?>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    подойдёт

    какая?
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Warning: rename(./files/bbb.txt,./files/gjvgjg.txt): �� ������ ����� �������� ����.
     
  4. ArsNet

    ArsNet Новичок

    С нами с:
    24 май 2016
    Сообщения:
    288
    Симпатии:
    24
    Адрес:
    Владивосток
    Ух еп!!! Смените кодировку чтоль и покажите нам что у вас там написано за �� ������ ����� �������� ����.