С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/43: Рейтинг темы: голосов - 43, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 10.07.2012
Сообщений: 18

Как избежать добавление в БД при обновлении страницы?

10.07.2012, 10:21. Показов 9142. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток
Проблема соответствует заголовку темы
Код в катором происходит автоматическое добовление данных к БД выглядит так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php // add.php
 
 
require_once 'login.php'; //инфо для подключения к БД
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
 
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
 
mysql_select_db($db_database, $db_server)
    or die("Unable to select database: " . mysql_error());
 
if (isset($_POST['name']) &&
    isset($_POST['caunt']))
{
    $name   = $_POST['name'];
    $data = date("Y-m-d H:i:s");
    $caunt = $_POST['caunt'];
    
    $query = "INSERT INTO uchet VALUES" .
        "('$name', '$data', '$caunt', '')";
 
    if (!mysql_query($query, $db_server))
        echo "INSERT failed: $query<br />" .
        mysql_error() . "<br /><br />";
}
 
echo <<<_END
<form action="add.php" method="post"><pre>
  Название детали <input type="text" name="name" />
Кол-во                      <input type="text" name="caunt" />
         <input type="submit" title="Нажмите чтобы удалить позици" value="Добавить деталь" />
</pre></form>
_END;
 
mysql_close($db_server);
?>
помогите решить проблему заранее признателен
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.07.2012, 10:21
Ответы с готовыми решениями:

Как сохранить текст при обновлении страницы html?
как сохранить текст при обновление страницы html? вот код: &lt;div id=&quot;commentBlock&quot;&gt; &lt;?php $result = mysql_query(&quot;SELECT *...

Дублирует при обновлении страницы
При обновление страницы дублирует в базу сообщение &lt;?php include (&quot;config/conf.php&quot;);?&gt; &lt;?php $res =...

Автозаполнение при обновлении страницы
Добрый день! Я начинающий разработчик пишу свой блог на php, столкнулся с проблемой при вводе данных в форму. Когда данные ушли форма...

14
33 / 36 / 2
Регистрация: 28.04.2010
Сообщений: 571
10.07.2012, 11:42
unset после добавления записи
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
10.07.2012, 11:50
сделайте обработчик отдельным файлом , и после добавления редиректните назад
Цитата Сообщение от Restel Посмотреть сообщение
unset после добавления записи
unset чего ?
0
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 77
11.07.2012, 00:07
unset($name)
unset($data)
unset($caunt)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.07.2012, 09:29
Цитата Сообщение от MainRoot Посмотреть сообщение
unset($name)
unset($data)
unset($caunt)
ну да. чудесно. и при обновлении страницы он будет выдавать ошибку что неизвестные переменные и ошибка в запросе. кул.
0
33 / 36 / 2
Регистрация: 28.04.2010
Сообщений: 571
11.07.2012, 09:35
Цитата Сообщение от KOPOJI Посмотреть сообщение
ну да. чудесно. и при обновлении страницы он будет выдавать ошибку что неизвестные переменные и ошибка в запросе. кул.
а это там для чего?
PHP
1
2
if (isset($_POST['name']) &&
    isset($_POST['caunt']))
Цитата Сообщение от MainRoot Посмотреть сообщение
unset($name)
unset($data)
unset($caunt)
нет,
PHP
1
2
unset($_POST['caunt']);
unset($_POST['name']);
Цитата Сообщение от crautcher Посмотреть сообщение
unset чего ?
для неумеющих читать документацию и думать - unset головы

Добавлено через 1 минуту
или просто после успешной вставки записи редирект на эту же страницу
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
11.07.2012, 10:03
вот именно, что:
PHP
1
2
unset($_POST['caunt']);
unset($_POST['name']);
а не:
PHP
1
2
3
unset($name)
unset($data)
unset($caunt)
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
11.07.2012, 10:08
Цитата Сообщение от Restel Посмотреть сообщение
unset($_POST['caunt']);
unset($_POST['name']);
и что это даст ? перезагрузишь страницу и они опять появятся
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
11.07.2012, 10:38
разве? ну чтож, выполним код:
PHP
1
2
3
4
5
6
7
8
9
<?
  if (isset ($_POST['a'])) echo 'yes, `a`' . $_POST['a'];
  else echo 'no, `a` is unsigned';
  unset ($_POST['a']);
?>
<form action="" method="post">
  $a = <input type="text" name="a" />
  <input type="submit" name="Submit" value="ОК" />
</form>
введи значение переменной, нажми ОК. выдаст "yes".
нажми F5 и посмотри что выдаст.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.07.2012, 10:42

Не по теме:

Цитата Сообщение от kester Посмотреть сообщение
нажми F5 и посмотри что выдаст.
выдаст Parse error: parse error, unexpected ')', expecting ',' or ';' :D
Цитата Сообщение от kester Посмотреть сообщение
if (isset ($_POST['a'])) echo 'yes, `a`' . $_POST['a']);



Добавлено через 2 минуты

Не по теме:

и кстати тоже самое будет ;) форма то заново отправляется при обновлении страницы :)

0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
11.07.2012, 10:43
Цитата Сообщение от KOPOJI Посмотреть сообщение
выдаст Parse error: parse error, unexpected ')', expecting ',' or ';'

Цитата Сообщение от kester Посмотреть сообщение
нажми F5 и посмотри что выдаст.
выдёт yes, `a`aaa всё время
0
11.07.2012, 10:50

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
выдаст Parse error: parse error, unexpected ')', expecting ',' or ';'
ух ты, подловил :). писал на быструю руку.
что-то где-то я сделал не так...

0
11.07.2012, 10:57

Не по теме:

Цитата Сообщение от kester Посмотреть сообщение
что-то где-то я сделал не так...
да не будет это работать, потому что форма при обновлении страницы заново отправляется (в хроме даже спрашивает, отправить заново данные или нет - жмешь нет - ничего не происходит:) ) - тут либо редирект, либо ставить сессию/куки (в данной ситуации глупо, имхо), либо записывать куда то и сравнивать - если уже есть такое, то ругаемся сильно и страшно)) но с редиректом на себя или на другую страницу - лучший вариант

1
11.07.2012, 11:31

Не по теме:

ладно, понял, что ничего не знаю...
о способе с редиректом расскажите поподробнее, интересно, но не понятно когда и как его делать.

0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.07.2012, 11:42
Цитата Сообщение от kester Посмотреть сообщение
о способе с редиректом расскажите поподробнее, интересно, но не понятно когда и как его делать.
ну вот простенький пример
PHP
1
2
3
4
5
6
7
8
9
10
<form method="post"><input type=text name=text><input type=submit name=btn></form>
<? if(isset($_POST['btn']))
{
//проверяем что ввели, и т.д. и т.п.
//если магические кавычки включены - то надо юзать еще stripslashes()
$query=sprintf("INSERT INTO `table`(`name`) VALUES ('%s')",mysql_real_escape_string($_POST['text']));
$ins=mysql_query($query);
echo ($ins)?"<script>document.location.replace('index.php');</script>":"Произошла ошибка при добавлении данных";
}
?>
т.е. если скрипт завершился успешно, нас все устраивает - делаем редирект на себя или на другую нужную страницу (редирект сделал на js чтобы не было в истории этого редиректа и проблем с header) если ошибка - выводим ошибку
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.07.2012, 11:42
Помогаю со студенческими работами здесь

При обновлении страницы записывает данные в БД
Всем привет. Почему когда я обновляю свою страницу, в бд записываются данные, который я добавлял через форму до обновления страницы ? Кто...

Дублирование тикета из бд при обновлении страницы
У меня есть личный кабинет игрового сервера с сапортом, при обновлении страницы с тикетом последнее сообщение в нем дублируется или сам...

Чтобы при обновлении страницы не выполнялся скрипт
При нажатии на кнопку submit формы, выполняется скрипт добавления записи в БД. При обновлении страницы - ТОЖЕ. Как сделать чтобы из формы...

Что делать если таймер сбрасывается при обновлении страницы
Доброго времени суток! У меня такая проблема. На сайте есть таймер, но проблема в том, что при обновлении страницы или переходе на другую...

При обновлении страницы в базу заносится пустая строка. Можно ли обойтись без редиректа?
На странице добавляю записи в базу, но при обновлении в базу заносится пустая строка, как лучше этого избежать. Прошу помощи


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru