ФорумПрограммированиеPHP для идиотов → Обнуление данных после выполнения срипта

Обнуление данных после выполнения срипта

  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 11:10

    Есть форма, которая загружает в БД информацию, например переменную a и b. После загрузки данных в БД, если обновить страницу с формой, то в БД те же самые переменные, с теми же значениями загружаются вновь. Как сделать так, чтобы при обновлении страницы данные туда не записывались.

    Пробывал сделать запуск скрипта только по нажатию кнопки, но все равно ситуацию исправить не удалось.
    Пробывал обнулять переменные (unset($a, $b);). Но что то все равно не получилось. Подскажите может я что то не так делаю.
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 11:15, спустя 4 минуты 40 секунд

    проверку сделай есть такая фраза или нет если такая фраза есть щли его нах
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 11:17, спустя 2 минуты 20 секунд

    http://pyha.ru/forum/topic/478.0
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 27 марта 2008 г. 11:31, спустя 13 минут 47 секунд

    Вот читаешь подобные темы в сотый раз и хочется написать - баян!!!
    from TRIAL with LOVE
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 11:54, спустя 23 минуты 41 секунду

    Вот читаешь подобные темы в сотый раз и хочется написать - баян!!!

    Все ситуации в нашей жизни для кого-то баян…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • welder

    Сообщения: 2945 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 12:05, спустя 10 минут 26 секунд


    Вот читаешь подобные темы в сотый раз и хочется написать - баян!!!

    Все ситуации в нашей жизни для кого-то баян…



    это не боян, это отсутсвие мозга и логики
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 12:33, спустя 28 минут 14 секунд

    welder, если говорить только о данном случае, то соглашусь, но я говорил в общих чертах…
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 12:55, спустя 22 минуты 13 секунд



    Вот читаешь подобные темы в сотый раз и хочется написать - баян!!!

    Все ситуации в нашей жизни для кого-то баян…



    это не боян, это отсутсвие мозга и логики


    Я и смотрю сдесь собрались исключительно оригиналы и умники.
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 12:58, спустя 2 минуты 54 секунды

    smv, а по существу проблемы после прочтения у тебя вопросы еще остались?
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 13:10, спустя 11 минут 26 секунд

    Впринципе все-таки остались. Вот если разбирать не вариант header, а именно проверку на существование перемееной.

    Например:

    Есть вот такой запрос:

    $query = "INSERT INTO lessons VALUES (null, '$department', '$kurs', '$lesson', '$name_lessons', '$link')";
    $result = mysql_query($query);

    После обновления страницы он выполняется снова. После проведения нескольких экспирементов ничего не получилось, а даже показалось что невозможно решить эту проблему путем проверки переменной. Т.е. выполняется скрипт. Данные записываются. Проверяется условие isset. И все. Данные не заносятся в БД вообще так как переменная существует, она не может не существовать.

    Пробывал после выполнения запроса обнулят перемнные, но почему то они не обнуляются.

    $query = "INSERT INTO lessons VALUES (null, '$department', '$kurs', '$lesson', '$name_lessons', '$link')";
    $result = mysql_query($query);

    if (isset($department) … )
    {
    unset($department);


    }
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 27 марта 2008 г. 13:45, спустя 35 минут 5 секунд

    Короче, слухай сюда:

    Все операции по изменению данных в базе вынеси в отдельный скрипт, на который и ссыдайся в форме в action.
    После обновления данных, с помощью header перенаправь обратно на страницу с формой. Все.
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 13:53, спустя 8 минут 33 секунды

    Потому что при обновлении страницы get и post данные отправляются снова, и, естественно, записываются в базу.
  • smv

    Сообщения: 236 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 13:58, спустя 4 минуты 29 секунд

    Понял. Спасибо. Все получилось.
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 27 марта 2008 г. 14:36, спустя 38 минут 4 секунды

    Обнулять данные бесполезно в данном случае.
    Хоть ты всё поудаляй. Когда ты обновляешь страницу, ты все эти данные сново передаешь.
    Я уже неоднократно писал, что в таком случае самое простое после первого добавления данных. создаем переменную $_SESSION. И перед добавление в базу уже делаем проверку на ее существование. Если существует, не добавляем данные, если нет то добавляем. И главное незабыть в добавить проверку на существование этой переменной в форму, где вбиваются первоночальные данные, чтоб можно было повторно что-то в бд занести.
    У меня так всё работает. Пусть и коряво зато проблем никаких нет.
    from TRIAL with LOVE
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 27 марта 2008 г. 16:18, спустя 1 час 42 минуты 14 секунд

    Я уже неоднократно писал, что в таком случае самое простое после первого добавления данных. создаем переменную $_SESSION. И перед добавление в базу уже делаем проверку на ее существование. Если существует, не добавляем данные, если нет то добавляем. И главное незабыть в добавить проверку на существование этой переменной в форму, где вбиваются первоночальные данные, чтоб можно было повторно что-то в бд занести.
    У меня так всё работает. Пусть и коряво зато проблем никаких нет.

    А чем самопереадресация-то не устраивает?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!