Я просматривал этот код несколько раз и до сих пор не вижу, что не так. Этот код является содержимым [url] /sig/index.php. Каждый раз, когда я запускаю его, я получаю «Извините, произошла ошибка». Но когда я проверяю значения нового и старого файлов, которые пытаюсь скопировать, они в порядке. Я делаю что-то глупое? Я использую функцию копирования на других страницах того же сервера, поэтому я уверен, что с кодом что-то не так.

Это простая страница для копирования файла в тот же каталог, перезаписывая предыдущий файл. Я знаю, что исходные файлы существуют, потому что у меня есть «Тестовая ссылка на исходный файл», которая всегда работает.

<?php

$formval = $_POST["banners"] ;
$newname = "banner-main.png" ;
$dir = "/sig/" ;

$img_to_copy = $dir . $formval . ".png" ;
$newimg =  $dir . $newname ;



if (copy($img_to_copy, $newimg)) {
        echo ($formval . " is the new email signature image.") ;
    } else {
        echo "Sorry, there was an error.";
        } ;

echo '<a href="' . $img_to_copy . '?var=' . rand(0,1000000) . '" target="_blank">Test link to source file</a>' ;

?> 



<h1>Which banner is next?</h1>

<br>

      <form action="/sig/index.php" method="post">
         <input type="radio" name="banners" value="banner-1">Banner 1
         <br>
         <input type="radio" name="banners" value="banner-2">Banner 2
         <br>
         <input type="radio" name="banners" value="banner-3">Banner 3
         <br>
         <input type="radio" name="banners" value="banner-4">Banner 4
         <br>
         <input type="submit" value="Submit">
      </form>
0
5Diraptor 16 Апр 2020 в 11:37

1 ответ

Лучший ответ

Скорее всего, причина вашей проблемы в том, что $dir = "/sig/" у вас там.

При просмотре файла (в формате HTML) используется папка sig/ с веб-сервера DocumentRoot вашего домена / проекта.

При копировании будет использоваться папка sig/ из корня файловой системы (где файл не существует).

Измените $dir = "/sig/" на $dir = "./sig/" или используйте полный путь к файловой системе при копировании файла.

1
brombeer 16 Апр 2020 в 10:28