Здравствуйте! У меня есть вопрос. Я написал форму обратной связи, и мне надо что бы кода отсылалось письмо, оно перенаправлялось на определенную страницу. как это сделать?
Вот мой исходный код html файла
<form action="send.php" method="post" name="zakaz" >
<p>Введите ФИО <font class="font-red">*</font>:<br><input type="text" name="name" size="49"></p>
<p>E-mail: <font class="font-red">*</font><br><input type="text" name="email" size="49"></p>
<p>Телефон:<br><input type="text" name="Tel" size="49"></p>
<p>Skype:<br><input type="text" name="Skype" size="49"></p>
<p>ISQ:<br><input type="text" name="ICQ" size="49"></p>
<p>Тип услуги: <font class="font-red">*</font></p>
<select name="prod" >
<option>
<option>Анимированный баннер (88 x 31) (GIF)
<option>Анимированный баннер (120 x 60) (GIF)
<option>Анимированный баннер (100 x 100) (GIF)
<option>Анимированный баннер (468 x 60) (GIF)
<option>Анимированный баннер (120 x 600)(GIF)
<option>Анимированный баннер (728 x 90) (GIF)
<option>Анимированный баннер (Другие размеры) (GIF)
<option>Статичный баннер (88 x 31)
<option>Статичный баннер (120 x 60)
<option>Статичный баннер (100 x 100)
<option>Статичный баннер (468 x 60)
<option>Статичный баннер (120 x 600)
<option>Статичный баннер (728 x 90)
<option>Статичный баннер (Другие размеры)
<option>favicon.ico
<option>Headers ("шапки")
<option>Аватарка
<option>Другие услуги
</select>
</br>
<p>Описание: <font class="font-red">*</font><br>
<textarea name="message" rows="8" cols="36"></textarea>
<br>
<br>
<input type="submit" value="Заказать" style="width:200x"></p>
</form>
И php файла
<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$Tel'])) {$Tel = $_POST['$Tel'];}
if (isset($_POST['$Skype'])) {$Skype = $_POST['$Skype'];}
if (isset($_POST['$ICQ'])) {$ICQ = $_POST['$ICQ'];}
if (isset($_POST['$prod'])) {$prod = $_POST['$prod'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}
$address = 'mail@mail.net';
$sub = "Заказ";
$mes = "Автор назвался: ".$_POST['name']." \nУказал свой адрес: ".$_POST['email']." \nУказал свой телефон: ".$_POST['Tel']." \nУказал свой Skype: ".$_POST['Skype']." \nУказал свой ICQ: ".$_POST['ICQ']." \nЗаказал: ".$_POST['prod']." \nОписание заказа: ".$_POST['message']."";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Сообщение отправлено";
}
else
{
echo "<p>Сообщение не отправлено";
}
?>
Редирект на сколько я понял тебе нужен…
die('<meta http-equiv="Refresh" content="0; URL='.$url.'">');
например так…
0-таймер в секундах
$url – сцылка
лучше header("Location: somepath", true, 302);
в зависимости от условий перенаправляем на разные странички
<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$Tel'])) {$Tel = $_POST['$Tel'];}
if (isset($_POST['$Skype'])) {$Skype = $_POST['$Skype'];}
if (isset($_POST['$ICQ'])) {$ICQ = $_POST['$ICQ'];}
if (isset($_POST['$prod'])) {$prod = $_POST['$prod'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}
$address = 'dantal@zeos.net';
$sub = "Заказ";
$mes = "Автор назвался: ".$_POST['name']." \nУказал свой адрес: ".$_POST['email']." \nУказал свой телефон: ".$_POST['Tel']." \nУказал свой Skype: ".$_POST['Skype']." \nУказал свой ICQ: ".$_POST['ICQ']." \nЗаказал: ".$_POST['prod']." \nОписание заказа: ".$_POST['message']."";
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
header('Location: http://www.mail.ru/');
die()
?>
Вот так работает, но меня настораживает, что нет проверок.
Как туда вписать проверку ппеременной $verify ъ
А то я вписую, и мне выдает ошибку(
или может так:
header('Location: http://www.mail.ru/, true');
header('Location: http://www.mail.ru/, false');
die()
???????????
Ну, во-первых, стоило бы почитать описание подобных функций. мануал есть и на русском.
меняйте тут только путь, не трогая остальные параметры.
header("Location: somepath", true, 302);
да так же, как и всё остальное оО if
if ($verify == true)
{
header('Location: http://www.mail.ru/1', true,302);
}
else
{
header('Location: http://www.mail.ru/2', true,302);
}
>
header('Location: http://www.mail.ru/, true');
header('Location: http://www.mail.ru/, true');
die()
не надо таких предположений <<
Огромное спасибо!)))
еще один вопрос)
За что овечает число 302 после true
???
и да, 'true' надо бы не в кавычках)
Почитайте какой-нибудь учебник по РНР…
302 – если бы погуглили, узнали, что это код состояния http.
http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%8...
аааааа, до меня дошло)))))))))))))))))
еще раз спс)) очень помог) А то сайт не мог запустить из за этой проблемки)
Похоже, что про фильтрацию данных, пришедших от пользователя, на этом сайте и речи быть не может….
>
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$Tel'])) {$Tel = $_POST['$Tel'];}
if (isset($_POST['$Skype'])) {$Skype = $_POST['$Skype'];}
if (isset($_POST['$ICQ'])) {$ICQ = $_POST['$ICQ'];}
if (isset($_POST['$prod'])) {$prod = $_POST['$prod'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}
Ппц. Зачем присваивать переменным значения, если при отправке вы все равно используете $_POST ?
подозреваю копипасту)
http://phpforum.ru/index.php?showtopic=17405 – вот похожий текст, тока там посты заменены на переменные.
Но лучше взять копипасты… да, с проверками^^" или переписать самому.
Кстати, хочу заметить, я удивлюсь, если это будет работать. $Skype, $name – таких полей в запросе просто не будет. Будут 'name','email' и т.д.
Та все работает)))) Я сто раз провирял.) Только была проблема с переодресацией)
Таких горе-разработчиков стрелять надо…
Зачем писать то, что вы не понимаете?
>if (isset($_POST['$name'])) {$name = $_POST['$name'];}
Это уже полнейший маразм!
Алексей [Йа НяшкО XD] Сонькин, работать оно будет т.к. в mail используются $_POST['name'] а не тот бред из ифов.
а, я туда не посмотрел =D
Антон Дятлов, если я впишу в поле "имя" что-то ~ вроде <script>alert('Ляля');</script>, ты это без проверки запишешь в базу, потом выведешь на страницу… Получится, мягко говоря, некрасиво.
По теме, "хэдэр" сработает только если на странице ничего не выведено до его вызова, с тэгом "мета" можно редиректнуть после, и с таймером, но если до вывода "хэдэр" используй.
Есть одна проблемка) Когда отсылаю с формы заказа на gmail то русский язык нормально отображается, но когда отсылаю в почту на хосте, ты приходит:
Àâòîð íàçâàëñÿ: Äÿòëîâ
Óêàçàë ñâîé àäðåñ: …l@zeos.net
Óêàçàë ñâîé òåëåôîí: 65745684566
Óêàçàë ñâîé Skype: dan
Óêàçàë ñâîé ICQ: 65834608764867
Çàêàçàë: Ñòàòè÷íûé áàííåð (120 x 600)
Îïèñàíèå çàêàçà: ÷òî áû áûëî êðóòî)
Какпонял это чето с кодировками (но не почти, а самой формы, потому что с почты на почту отсылается норм)
Можно ли прописать <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> в php???
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> прописывай в теле письма, между тэгов хэд.
ты не понял не в html странице, а в php. У меня не распознается не на странице, а текст письма который приходит на почту…..
Мне предложили прописать в php
header( "Content-type: text/html; charset=\"windows-1251\"" );
Но не чего не помогло………..