За последние 24 часа нас посетили 18800 программистов и 1704 робота. Сейчас ищут 848 программистов ...

При перезагрузки страницы через F5, фотка отправляется снова

Тема в разделе "PHP для новичков", создана пользователем melihovgv, 3 окт 2012.

  1. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    <?php
    if(isset($_POST['goup']))
    {
    if(is_uploaded_file($_FILES["fn"]["tmp_name"]))
    {
    // Если файл загружен успешно, перемещаем его
    // из временной директории в конечную
    $size = getimagesize ($_FILES["fn"]["tmp_name"]);
    //print_r ($size);

    $file=$_FILES["fn"]["name"];

    $fp = fopen("img/number.txt", "r");
    $buffer = fgetss($fp, 4096);
    //echo $buffer;

    $fp = fopen("img/number.txt", "w+");
    $number=$buffer+1;
    fwrite($fp,$number);

    $patterns = array();
    $patterns[0] = '/'.$file.'/';

    $replacements = array();
    $replacements[1] = ''.$buffer.'.jpg';

    $replace=preg_replace($patterns, $replacements, $file);

    move_uploaded_file($_FILES["fn"]["tmp_name"], "/home/cms.ru/www/img/".$replace);

    //move_uploaded_file($_FILES["fn"]["tmp_name"], "/home/cms.ru/www/img/".$_FILES["fn"]["name"]);

    }

    else {
    echo("Ошибка загрузки файла");
    }
    }
    ?>

    При перезагрузки страницы через F5, фотка отправляется снова. Как это можно исправить?
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: При перезагрузки страницы через F5, фотка отправляется с

    редиректить
     
  3. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    Re: При перезагрузки страницы через F5, фотка отправляется с

    header("Location: http://cms.ru/file.php"); вставляю после move_uploaded_file($_FILES["fn"]["tmp_name"], "/home/cms.ru/www/img/".$replace);
    Вот такая ошибка Warning: Cannot modify header information - headers already sent by (output started at W:\home\cms.ru\www\file.php:24) in W:\home\cms.ru\www\file.php on line 66

    И фотка все равно добавляется при F5

    Добавлено спустя 1 минуту 55 секунд:
    Re: При перезагрузки страницы через F5, фотка отправляется снова
    А вот так работает
    echo "<meta http-equiv=\"refresh\" content=\"0; url=\"file.php\">";
     
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: При перезагрузки страницы через F5, фотка отправляется с

    дык редирект не прошел, т.к. заголовки ушли как только ты начал вывод. так что надо буферить вобще-то всегда.
     
  5. melihovgv

    melihovgv Активный пользователь

    С нами с:
    2 мар 2011
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Москва
    Re: При перезагрузки страницы через F5, фотка отправляется с

    Сколько не использовал header - всегда ошибка.
    Я понимаю, что заголовки посылаются в момент загрузки страницы, но все таки есть ли решения на php для перезагрузки?

    Добавлено спустя 24 секунды:
    Re: При перезагрузки страницы через F5, фотка отправляется снова
    а как?можно пример?
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: При перезагрузки страницы через F5, фотка отправляется с

    ob_start();
    echo "lalala";
    $var = ob_get_clean();
     
  7. Gold Dragon

    Gold Dragon Активный пользователь

    С нами с:
    30 сен 2012
    Сообщения:
    306
    Симпатии:
    2
    Адрес:
    Тамбов
    Re: При перезагрузки страницы через F5, фотка отправляется с

    как вариант если не хочется редиректить, поставить флаг. Т.е. перед оправкой проверить существование некого значения в сессии, а после отправки создать некое значение в сессии... И перед оправкой если нет, то отсылать, если есть то не отсылать