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

Форум PHP

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

 

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

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

тема: Очистка формы передачи параметров
 
 автор: Florian   (29.10.2006 в 22:51)   письмо автору
 
 

Всем доброго времени суток. Возникла следующая проблема: у меня на странице написанной на РНР есть форма передачи параметров, пользователь заполняет форму и нажимает кнопку "Отправить", обработка данных происходит на этой же странице, если пользователь после нажатия кнопки "Отправить" обновляет страницу, то обработка данных происходит еще раз и т.д. до бесконечности.

Можно ли решить проблему средствами РНР? Возможно после нажатия кнопки "Отправить" очищать форму?

   
 
 автор: Lelik   (30.10.2006 в 00:24)   письмо автору
 
   для: Florian   (29.10.2006 в 22:51)
 

можно с помощью яваскрипта:

...
<head>
<script>
<!--
function cleanFields(){
document.forms['имя_формы'].имя_поля_для_очистки_1.value="";
document.forms['имя_формы'].имя_поля_для_очистки_2.value="";
document.forms['имя_формы'].имя_поля_для_очистки_2.value="";
}
//-->
</script>
</head>
<body onLoad="cleanFields()">
<form name="имя_формы">
<input type="text" name="имя_поля_для_очистки_1">
<input type="text" name="имя_поля_для_очистки_2">
<input type="text" name="имя_поля_для_очистки_3">
</form>
...

   
 
 автор: Poison   (30.10.2006 в 07:21)   письмо автору
 
   для: Florian   (29.10.2006 в 22:51)
 

Пару недель назад я тоже мучался с подомного рода проблемкой=) и решил ее с помощью редикета на саму себя

<?
header
("location страница.пхп")
?>


Вставляй после окончаия запроса=)

   
 
 автор: For_ester   (30.10.2006 в 13:01)   письмо автору
 
   для: Florian   (29.10.2006 в 22:51)
 

Я проблему решил иначе, так как хидер втыкать было не удобно. Выкладываю вункцию целиком.

<?
function PostMailMess ($to$subject$otpravleno$spase=2)
   {
        if(isset(
$_POST['mail']) && is_array($_POST['mail']))
        {
             
$mess $_POST['mail'];
             
### Проверяем чтоб не подсунули вложенные массивы
             
foreach($mess as $x)
             {
                  if(
is_array($x)) $error TRUE;
             }
             
$md5  implode(''$mess);
             
### Проверка для предотвращения повторной отправки и пустых сообщений
             
if(!isset($error) && strlen($md5) != && (!isset($_SESSION['md5_mail']) || $_SESSION['md5_mail'] != md5($md5)))
             {
                  
### Строим месагу
                  
$message '';
                  foreach (
$mess as $k => $x)
                  {
                       
### Максимальное колличество табов это $spase, реальное
                       ### зависит от кол-ва символов в $k
                       ### будем вычитать из кол-ва символов некий $z(подбор эксперементальный)
                       
$z      10;
                       
$strlen strlen($k);
                       
### кол-во табов
                       
$z2     $spase ceil($strlen $z);
                       
$tab    str_repeat("\t"$z2);
                       
$tab2   str_repeat("\t"$spase);
                       
### Разбиваем значение на подстроки
                       
$x      str_replace("\n""\n".$tab2$x);
                       
$x      wordwrap($x60"\n".$tab2);
                       
$message.=$k.$tab.$x."\n\n";
                  }
                  
$headers  'MIME-Version: 1.0' "\r\n";
                  
$headers .= 'Content-type: text/plain; charset=Windows-1251' "\r\n";
                  
$headers .= 'From: '.$_SERVER['HTTP_HOST'].' <mail@'.$_SERVER['HTTP_HOST'].'>' "\r\n";
                  
mail($to,$subject,$message,$headers);
                  
### записываем контрольку в сесию
                  
$_SESSION['md5_mail'] = md5($md5);
                  echo 
$otpravleno;
             }
        }
   }
?>

   
 
 автор: Florian   (30.10.2006 в 13:26)   письмо автору
 
   для: Florian   (29.10.2006 в 22:51)
 

Всем огромное спасибо за помощь :-)

   
Rambler's Top100
вверх

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