Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кнопка "Обновить" в IE повторно добавляет в базу. Как избавиться?
 
 автор: uriev   (10.03.2006 в 16:01)   письмо автору
 
 


<?
mysql_connect
('localhost','user');
mysql_select_db('test');
if(
$_POST['go']) {
    
mysql_query("INSERT tabl SET txt='".$_POST['txt']."'");
}
?>
<html><body>
<?
if($_GET['a']=='a') {?>
    <form action="index.php" method="POST">
        <input type="text" name="txt">
        <input type="submit" name="go" value="Добавить">
    </form><?
} else {
    
$res=mysql_query("SELECT txt FROM tabl");
    while(
$mas=mysql_fetch_array($res)) {
        echo 
$mas['txt'].'<br>';
    }
?>
    <a href="index.php?a=a">Добавить</a><?
}?>
</body></html>

   
 
 автор: Shorr Kan   (10.03.2006 в 16:19)   письмо автору
 
   для: uriev   (10.03.2006 в 16:01)
 

Для этого нужно после добавления в базу - редиректить обратно на форму. Скажем - при помощи meta refresh. Добавили, попали на страничку, где написать "спасибо", и мета-рефрешьте человека обратно.

   
 
 автор: uriev   (10.03.2006 в 17:47)   письмо автору
 
   для: Shorr Kan   (10.03.2006 в 16:19)
 

Спасибо!
Только один способ - редирект?

   
 
 автор: ck   (10.03.2006 в 18:44)   письмо автору
 
   для: uriev   (10.03.2006 в 17:47)
 

Запишите в сессию, что факт отправки состоялся. А перед отправкой проверяйте, нет ли уже в сессии такой записи.

<? 
mysql_connect
('localhost','user'); 
mysql_select_db('test'); 
session_start();
if(
$_POST['go'] && empty($_SESSION['aga'])) { 
    
mysql_query("INSERT tabl SET txt='".$_POST['txt']."'"); 
    
$_SESSION['aga'] = 1;

?> 
<html><body> 
<? 
if($_GET['a']=='a') {?> 
    <form action="index.php" method="POST"> 
        <input type="text" name="txt"> 
        <input type="submit" name="go" value="Добавить"> 
    </form><? 
} else { 
    
$res=mysql_query("SELECT txt FROM tabl"); 
    while(
$mas=mysql_fetch_array($res)) { 
        echo 
$mas['txt'].'<br>'
    }
?> 
    <a href="index.php?a=a">Добавить</a><? 
}?> 
</body></html>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования