|
|
|
| Всем доброго времени суток. Возникла следующая проблема: у меня на странице написанной на РНР есть форма передачи параметров, пользователь заполняет форму и нажимает кнопку "Отправить", обработка данных происходит на этой же странице, если пользователь после нажатия кнопки "Отправить" обновляет страницу, то обработка данных происходит еще раз и т.д. до бесконечности.
Можно ли решить проблему средствами РНР? Возможно после нажатия кнопки "Отправить" очищать форму? | |
|
|
|
|
|
|
|
для: 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>
...
|
| |
|
|
|
|
|
|
|
для: Florian
(29.10.2006 в 22:51)
| | Пару недель назад я тоже мучался с подомного рода проблемкой=) и решил ее с помощью редикета на саму себя
<?
header("location страница.пхп")
?>
|
Вставляй после окончаия запроса=) | |
|
|
|
|
|
|
|
для: 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) != 0 && (!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($x, 60, "\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
(29.10.2006 в 22:51)
| | Всем огромное спасибо за помощь :-) | |
|
|
|