Перенаправление после отправки формы

arhitec

Новичок
ОЧЕНЬ простой ВОПРОС!

Всем привет. Я новичок в программировании на PHP и вопрос, который я хочу задать очень прост.
У меня есть форма, созданная в html (<form action=mail.php method=post>), которая как Вы видите ссылается на файл mail.php
далее текст кода файла mail.php

<?php
$to = "[email protected]";
$subj = "On-Line консультации с сайта www.arhitec.com";
$mess = "С вашего сайта было отправленно сообщение.
Ваше имя: $name
Ваш e-mail: $mail
Cуть вопроса:
-----------------------------------------------------
$question
-----------------------------------------------------
";
$headers = "Content-type: text/plain; charset=windows-1251
";
mail($to, $subj, $mess, $headers);
echo "Спасибо. Ваше сообщение отправлено!";
?>

у этого файла есть большой минус! После отправки письма выдается сообщение "Спасибо. Ваше сообщение отправлено!" и на том все останавливается. Переадресации обратно на страницу, где была форма нет и от того скриптик этот становится ненужным...

Подскажите, как установить переадресацию по окончании работы этого скрипта скажем на главную страницу index.html

За ранее Вам благодарен!
 

С.

Продвинутый новичок
Переадресацию-то сделать просто. Только подумай, надо ли? Ведь тогда посетитель не увидит твоего сообщения "Спасибо. Ваше сообщение отправлено!". Будет пытаться отправлять снова, пока не плюнет.

Что плохого, если останется именно эта странца? Сделай только, чтобы выводилось все твое стандартное меню, тогда посетитель сможет перейти на другую страницу.
 

arhitec

Новичок
Я как раз бы и хотел, что бы сообщение осталось. Без сообщения переадресацию я уже понял как сделать :)

Сейчас дошел до того, что переадресация идет на html страницу с сообщением, спасибо сообщение отправлено, сейчас Вы будете направлены на главную... И т.п.
Только вот пока ничего не получается, там вторая праблема возникла как сделать паузу.., Вобщем я запутался, а хочется добиться именно того о чем вопрос и задал...
 

magic

lancer
Тебе нужно что-то типа этого?
Код:
Your message has been sent. Please stand by as we take you to the main page.

Please wait while we transfer you...

(Or click <a href="index.php">here</a>) if you do not wish to wait.
<script language="JavaScript" type="text/javascript">
function changeurl(){eval(self.location="index.php");}
window.setTimeout("changeurl();",3000);
</script>
-~{}~ 25.11.06 04:24:

3000 - это задержка в 3 секунды перед перенаправлением на index.php
 

arhitec

Новичок
Пожалуй да, если смотреть на вскидку, я только что добился похожего результата, почти тем же способом :)

<?php sleep(3); ?>

<script language=javascript>
window.location.href = "http://www.arhitec.com"
</script>

Но это сразу видно делитант делал :) А у тебя получше :)
 

С.

Продвинутый новичок
Не надо никакой паузы. Если тебе уж очень хочется опять на свою форму выйти, то и пиши в form action именно ее. А вот обработку производить по-разному, в зависимости пришли данные через пост или нет. Там же где-нибудь вставишь свое сообщение.
 

arhitec

Новичок
Пауза то нужна для того, что бы пользователь успел прочесть уведомление о том, что сообщение отправлено.
 

С.

Продвинутый новичок
В последнем случае, про который я тебе сказал (а ты не понял) твое сообщение будет висеть вечно (ну или по крайней мере до перехода на другую страницу). И форма там будет и сообщение, все будет. Это, согласись, даже лучше. А то мало-ли куда отвлекся посетитель во время паузы.
 

arhitec

Новичок
Прости я наверное без сна такой тугодум, но не уловлю причину такого хода... Смотри, у меня на сайте www.arhitec.com есть форма, она на главной странице, форму заполняешь, пересылаешься на страницу с уведомлением и после этого возвращаешься на главную, где и есть эта форма... А так, как пользователь узнает отослалось ли письмо или нет? :)
 

Фанат

oncle terrible
Команда форума
1. На первый раз нарушение правил тебе прощается. Но в следующий тема будет немедленно закрыта.

2. Не надо никаких задержек. чтобы человек узнал, что его письмо отправилось, надо просто показать ему текст о том, что его письмо отправилось. И чтобы уходил он с этой страницы только тогда, когда сам захочет.

3. перенаправление делается функцией header которая отправляет заголовок Location: и больше никак.
 

arhitec

Новичок
За что же закрыта? Чем я провинился то?
Я ведь на форуме потому что хочу понять и научиться... А научиться без понимания нельзя...
Я вроде не флудил и не оскарблял никого, или такие вопросы у Вас считаются НОНГРАТА?
 

Фанат

oncle terrible
Команда форума
За что она должна быть закрыта - можно прочитать в правилах. Раз правила доступны для самостоятельного прочтения, то я не считаю, что должен их тебе объяснять здесь.
Больше тема правил обсуждаться в этом топике не будет. моей задачей было тебя только предупредить.
 

С.

Продвинутый новичок
arhitec, модератор ругается на то, что ты дал теме бессодержательное название. Если уж вопрос такой "ОЧЕНЬ простой", то что же ты его до сих пор не понимаешь?
 
Сверху