Вопрос по обработке формы

Тема в разделе "PHP", создана пользователем Rigor, 1 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Есть форма, в ней инпуты, чекбоксы, аеры и т.д. И есть такой глюк, что при обновлении значения сохранаяются. Всмысле если отправить - данные в БД добавятся. И если обновить, они ещё раз добавляются. Сейчас этого не проиходит из-за проверки на существования такого же в бд. Но хотлеось бы чтобы такого вобще не было. Как правильно форму проверять?

    Сейчас проверяю !empty($send)
     
  2. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    Может я не так понял, но вот:
    PHP:
    if ($_POST['send']){
    header('Location: script.php');
    }
     
  3. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    alexz15
    Проблема в том, что форма и обработка находятся в одном файле
     
  4. alexz15

    alexz15

    Регистр.:
    3 окт 2008
    Сообщения:
    394
    Симпатии:
    190
    поставь код что я привел в начало скрипта, как только отправишь форму, скрипт переправит тебя на тот же файл, и не будет повторной отправки.
     
  5. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Запиши в сессию, что формо обработана, а в начале файла проверяй.
     
  6. asterpool

    asterpool Создатель

    Регистр.:
    24 июн 2008
    Сообщения:
    30
    Симпатии:
    1
    а почему этот вариант не устраивает?
    вполне надежная проверка)
     
  7. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    PHP:
    $s $_SERVER['HTTP_REFERER'];
    if (
    $_POST['send'])
    {
    header("Location: $s ");
    }  
    Может лучше так сделать на всякий левый случай?
    Можно хоть подробней немного раскрыть тему того,что нужно сделать?
     
  8. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
    PHP:
    if(isset($_POST['send'])) {

     
    тута делаешь проверки на существование записи в БД.
    }
     
  9. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    можно так попробовать:

    кнопка:
    Код:
    <input type="submit" name="go"/>
    в коде перед тем как обрабатывать данные делаем проверку:
    Код:
    if (!empty($go))
    {
    обработка формы
    }
    
     
  10. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    311
    tirrex, в таком варианте при обновлении страницы данные посылаются повторно, а значит и параметр go тоже отправится.
     
Статус темы:
Закрыта.