остановить скрипт

242
23 декабря 2016, 16:27

Задам такой глупый вопрос,у меня код загружает картинку на сервер,все хорошо работает,но когда я удаляю картинку из папки и перезагружаю страницу она у меня снова туда забрасывается даже если я форму загрузки картинки не трогал просто перезагрузил страницу. P.s да я могу загуглить, но я не могу сформировать запрос - думал что то "как остановить выполнения скрипта" и тд

 include('set.php');
include ('lib/WideImage.php');  

$path = 'scr/';
$ext = array_pop(explode('.',$_FILES['img']['name']));
$pic = array_pop(explode('.',$_FILES['img']['name']));
$new_name = date("d.m.Y").'-'.$_FILES['img']['name'];
$full_path = $path.$new_name; 

if($_FILES['img']['error'] == 0){
if (($pic!="jpg")  &&  ($pic!="png")  &&  ($pic!="jpeg")){
    echo "Файл не был загружен, загрузите файл с расширением .jpeg/jpg/png";
exit();  
}
else {


if(move_uploaded_file($_FILES['img']['tmp_name'], $full_path)){
WideImage::load($_FILES['img']['name'])->resize(200, 200)->saveToFile($full_path);
    }
    }
}

if(isset($_POST['add']))
{  
$result = mysql_query('
INSERT INTO obj
(`img`)
VALUES
("' . $full_path . '")
');
    mysql_close;
    echo "Картинка добавлена";
}
Answer 1

Вы пользуетесь нативным РНР или фреймворком?

Когда Вы делаете POST отправку формы и после этого, перед перезагрузкой страницы вручную, оно Вам выдает окошко, что есть данные, которые можно повторно отправить - просто сделайте unset($_POST).

Если у Вас загрузка с помощью AJAX - то нужно сделать reset формы, которую Вы отправляли.

Пример на чистом РНР:

class Uploader
{
    /**
     * @param array $file_array
     * @param bool $key
     * @param bool $postKey
     * @return bool
     */
    public function upload($file_array = [], $key = false, $postKey = false){
        unset($_POST[$postKey]);
        if (array_key_exists($key, $file_array)){
            foreach ($file_array[$key] as $file) {
                $mover = move_uploaded_file($file['path'], '/destination/folder/and/file.extension');
                return $mover;
            }
        }
        return false;
    }
}
if (isset($_POST['add'])){
    var_dump((new Uploader())->upload($_FILES, 'img', 'add'));
}
READ ALSO
Добавление данных в xml файл при помощи ajax. Без перезагрузки страницы

Добавление данных в xml файл при помощи ajax. Без перезагрузки страницы

Есть таблица в которую загружаются данные из xmlНужно сделать что бы эти данные можно было добавлять без перезагрузки страницы

335
php mysql Unknown column '' in 'field list' [требует правки]

php mysql Unknown column '' in 'field list' [требует правки]

когда делаю селект все работает, но при insert выводит ошибку:

294
imap_createmailbox и кириллица

imap_createmailbox и кириллица

Подскажите, пожалуйста, как с помощью функции imap_createmailbox() создать папку с русскими буквамиНашел пример, где говорится, что надо кириллицу...

289
Ограничения на имена каталогов Apache+php

Ограничения на имена каталогов Apache+php

Есть ли ограничение на имя каталога "php"?

267