PHP Не работает загрузка файлов на сервер?

136
09 января 2020, 12:10

Всем привет! Помогите пожалуйста кто разбирается, целый день вожусь с этим. Я вывожу через цикл данные среди которых есть форма. И хочу при нажатии кнопки изменить, чтобы старый файл удалился с сервера, ее путь с базы данных и загрузился новый файл и записалась путь к новому файлу в базу данных. Но почему-то только в первой записи все работает, а уже в следующих записях на загружается новый файл на сервер. В чем может быть проблема Заранее всем спасибо! Код php

<div class="flex">
      <?php $osnovateli =  mysqli_query($connection, "SELECT * FROM `osnovateli` WHERE `tip` = 'osnovateli'"); ?>
      <?php while($osn = mysqli_fetch_assoc($osnovateli)){ ?>
      <div class="item">
        <form enctype="multipart/form-data" action="" method="POST">
          <p>Имя</p>
          <input type="text" name="id" value="<?php echo $osn['id']; ?>" hidden>
          <input type="text" name="imya" value="<?php echo $osn['imya']; ?>">
          <p>Picture</p>
          <img src="<?php echo $osn['picture']; ?>" alt="">
          <label for="newimg">
            <p class="newimg">Нажмите для загрузки нового изображеня</p>
            <input type="file" id="newimg" name="userfile"> 
          </label>
          <input type="text" name="picture" value="<?php echo $osn['picture']; ?>">
          <p>Фамилия</p>
          <input type="text" name="familiya" value="<?php echo $osn['familiya']; ?>">
          <p>Описание</p>
          <textarea name="opisanie" id="" cols="30" rows="10">
            <?php echo $osn['opisanie']; ?>
          </textarea>
          <p>Сссылка на Facebook</p>
          <input type="text" name="fb" value="<?php echo $osn['fb']; ?>">
          <p>Сссылка на Vkontakte</p>
          <input type="text" name="vk" value="<?php echo $osn['vk']; ?>">
          <p>Сссылка на Instagram</p>
          <input type="text" name="inst" value="<?php echo $osn['inst']; ?>">
          <span class="change">Изменить</span>
          <span class="delete do-delete">Удалить</span>
          <div class="change-confirm">
            <p>Изменить данные?</p>
            <input type="submit" value="Да" name="osnovateli-change" class="change">
            <span class="no-delete">Нет</span>
          </div>
          <div class="delete-confirm">
            <p>Удалить запись?</p>
            <input type="submit" value="Да" name="osnovateli-delete" class="delete">
            <span class="no-delete">Нет</span>
          </div>
        </form>
      </div>
      <?php }; ?>
    </div>

Обработчик формы

if($_POST['osnovateli-change']){
// $oldimg = $_POST['picture'];
// $deleteimg = unlink($oldimg);
if(unlink(dirname(__DIR__).$_POST['picture'])){
    echo "Deleted";
}
$destiation_dir = dirname(__DIR__) .'/img/upload/'.basename($_FILES['userfile']['name']);
echo '<pre>';
$imgsrc = '/img/upload/'.$_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destiation_dir )) {
    echo "Файл корректен и был успешно загружен.\n";
} else {
    echo "Возможная атака с помощью файловой загрузки!\n";
}
echo 'Некоторая отладочная информация:';
print_r($_FILES);
print "</pre>";
$change = mysqli_query($connection, "UPDATE osnovateli SET picture = '" . $imgsrc . "', imya = '" . $_POST['imya'] . "', familiya = '" . $_POST['familiya'] . "', opisanie = '" . $_POST['opisanie'] . "', fb = '" . $_POST['fb'] . "', vk = '" . $_POST['vk'] . "', inst = '" . $_POST['inst'] . "' WHERE id = '" .$_POST['id'] . "'");
header('Location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); exit();
if ($change === true){
    echo "Информация занесена в базу данных";
}else{
    echo "Информация не занесена в базу данных";
}

};

READ ALSO
Подать массив в функцию

Подать массив в функцию

Есть необходимость воспользоваться некоторой функциейНапример:

134
Можно в qml передать QMap?

Можно в qml передать QMap?

Я нашёл как передавать из qt в qml QAbstractListModelНо не нашёл как передать QMap

125
Конвертация Python str в QString с использованием boost.python

Конвертация Python str в QString с использованием boost.python

Столкнулся с проблемой написания конвертера из Python str в QString с использованием boostpython

127
Кто знает как пофиксить? [закрыт]

Кто знает как пофиксить? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»

128