В общем, проблема заключалась в том, что после отправки формы, при обновлении страницы, письмо повторно отправлялась. Я сделал редирект на страницу с формой и при обновлении страницы, письмо уже повторно не отправляется, НО исчез echo.
Подскажите, пожалуйста, как вывести сообщение об отправки письма(без перезагрузки страницы) после редиректа?
Спасибо.
Есть форма ввода данных с аттачем в PHP-файле:
......<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="formID" class="formular" name="formular">
<div><input type="text" size="50" name="name" id="name" placeholder="Имя:" class="validate[required,length[0,100]] text-input" /></div>
<div><input type="email" size="50" name="email" id="email" placeholder="@" class="validate[required,custom[email]] text-input" /></div>
<div><input type="subject" size="50" name="subject" id="subject" placeholder="Тема:" class="validate[required,length[0,40]] text-input" /></div>
<input type="text" id="fileName" class="file_input_textbox" placeholder="Файла нет" readonly />
<div class="file_input_div">
<input type="button" value="Прикрепить" class="file_input_button" />
<input type="file" name="file" class="file_input_hidden" onchange="javascript: document.getElementById('fileName').value = this.value" />
</div>
<div><textarea rows="5" cols="50" name="mess" id="mess" placeholder="Сообщение:" class="validate[required,length[6,300]]"></textarea></div>
<input type="submit" class="button1" value="Отправить" name="submit" />
<input type="reset" class="button2" name="button2" id="button2" value="Отменить" />
</form> ......
и в этом же файле( вверху ) скрипт отправки письма:
<?php
ob_start();
if(isset($_POST['submit'])) { /***---Если форма отправлена---***/
header("Content-type: text/txt; charset=UTF-8");
function send_mail()
{ $name = htmlspecialchars($_POST['name']); }
{ $subject = htmlspecialchars($_POST['subject']); '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';}
{ $email = htmlspecialchars($_POST['email']); }
$style = 'font-family:Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color:#474747;padding:6px;border-bottom:1px solid #cccccc;' ;
$style2 = 'font-family:Verdana, Arial, Helvetica, sans-serif; font-size : 13px; color:#474747;padding:10px;border-bottom:1px solid #cccccc;' ;
$message =
"<table cellspacing=0 cellpadding=0 border=0 >
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Имя пославшего: </b> </td> <td valign=top style='{$style};'>" .$_POST['name']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Электронный адрес: </b> </td> <td valign=top style='{$style};'>" .$_POST['email']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Тема: </b> </td> <td valign=top style='{$style};'>" .$_POST['subject']. "</td></tr>
<tr><td valign=top style='{$style};width:33%;border-right:1px solid #cccccc;'><b>Сообщение: </b> </td> <td valign=top style='{$style2};width:600px; line-height: 27px;'>" .$_POST['mess']. "</td></tr>
</table><br>";
include "class.phpmailer.php";// подключаем класс
if(empty($_POST['name'])||empty($_POST['email'])||empty($_POST['subject']))/***--------Do Validations---------***/
{ $errors .= "\n Name, Email, Subject are required fields. "; }
if(IsInjected($visitor_email))
{ $errors .= "\n Bad email value!"; }
//send the email
if(empty($errors))
{
$mail = new PHPMailer();
$mail->From = $_POST['email'];
$mail->FromName = $_POST['name'];
$mail->AddAddress('my@mail.com');
$mail->CharSet = "UTF-8";
$mail->IsHTML(true);
$mail->Subject = $_POST['subject']." | Письмо пришло с сайта bla-bla.ru";
if(isset($_FILES['file']))
{ if($_FILES['file']['error'] == 0)
{ $mail->AddAttachment($_FILES['file']['tmp_name'],$_FILES['file']['name']); }
}
$mail->Body = $message;
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
{
echo "<script language='JavaScript'>alert('Спасибо ".$_POST['name']." за использование контактной формы! Ваш email был отправлен и я свяжусь с Вами в кратчайшие сроки.')</script>";
}
if (!empty($_POST['submit'])) {send_mail(); header('Location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);exit;}
}}
function IsInjected($str){
$injections = array('(\n+)','(\r+)','(\t+)','(%0A+)','(%0D+)','(%08+)','(%09+)');
$inject = join('|', $injections); $inject = "/$inject/i";
if(preg_match($inject,$str)){ return true; }
else{ return false; } }
?>