Просмотр полной версии : Ошибка!
if (($sender_name == "") || ($sender_email == "") || ($message == "") || ($subject == "")) {
echo "
<script language=\"JavaScript\">
alert('Все поля необходимы для заполнения!')
</script>";
header ("Location:mail.html");
exit;
}
В чем ошибка???
:confused: :confused: :confused: :confused: :confused:
Ошибка:
1. В упертом нежелании приводить сообщения об ошибке.
2. В упертом нежелании читать документацию, где про header сказано недвусмысленно: "Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file."
3. В полном непонимании элементарных основ веб-технологий. В частости -- в непонимании того, где и когда работают JS и PHP и что делает команда header.
2барт
на всякий случай краткий перевод ответа Crazy: нельзя, чтобы перед отправкой хедера выводилось что-либо в броВУзер...
metton, ему это не поможет. Посмотри внимательно, ЧТО он пытается сделать...
2Crazy
Он пытается/-лся:
- отослать хедеры после того как они уже отосланы
- прописать в Location относительные пути (хотя это не жестко - можно и так. ("some clients accept relative URIs"))
Ещё что-то?
Hint: представь, что команда header правильно сработает (например -- при включенном кэшировании). Какой смысл будет иметь код, который при этом попадет в браузер?
Народ!
Я php только начел изучать.
Объясните, если не трудно.
Alex Wanderer
04.02.2003, 12:10
... И тут Барта отправили на http://www.php.net/ (или http://ru.php.net/manual/ru/ на русском)... как обычно...
Кстати, очень стоит туда сходить
И это та называеш по русски?!?!?!?!?!?!?!?!?!
:eek: :eek: :eek: :eek: :eek: :eek: :eek: :eek:
Народ, дайте работающий код чтоли ;) ;) ;)
ну блин
if (($sender_name == "") || ($sender_email == "") || ($message == "") || ($subject == "")) {
header ("Location:mail.html");
exit;
}
Alex Wanderer
05.02.2003, 11:36
В дополнение к коду Нагаша: до этих строк в бровзер ничего не должно выводиться
... человека в пыль превратили :)
И как же это зделать????????????????????????????????????????
Alex Wanderer
06.02.2003, 11:55
По моему скромному ИМХО, ты пытаешься очегь сильно усложнить задачу. Все значит. проще. Сделай один(!) mail.php и обрабатывай в нем наличие/отсутствие всех своих переменных. Ежель чего не заполнено -- вываливаешь сообщение, типа "у Вас чавой-то осталось незаполненное..." и форму заполнения по-новой. Если все ОКи -- сообщ. "Ваша мессага отправлена"...
Надеюсь, тебе полный код присылать не надо?
dnk_tiger
07.02.2003, 22:13
$message = "";
if (empty ($tema) || empty ($mail) || empty ($bla) || empty ($bla2))
{
$message.="ЗАПОЛНИ ВСЕ ПОЛЯ ФОРМЫ";
}
if ($message ==="")
{
header("Location:mail.php");
}
Удачи тебе =)
cannabizzz
08.02.2003, 06:18
Zahodi6 na www.aport.ru i nabirae6 "Uroki PHP" V odnoj iz pervih stro4ek pojavica ssilka na o4enj klassnij sajt dlja na4inaju6ih. Poverj, tam vse o4enj neploho raz#evano.
if ((!isset($sender_name)) || (!isset($sender_email)) || (!isset($message)) || (!isset($subject)) ) {
echo "
<script language=\"JavaScript\">
alert('Все поля необходимы для заполнения!')
document.location=\"mail.html\";
</script>";
}
На самом деле все проще....
2juggy
ИМХО, решение не очень. Всё-таки при правильном использовании хедера он работает на 100%, а JS можно отключить.
Всем спасибо!
Я уже все понел!
прошло 9 месяцев и он понял...! =)
iLoveYou
02.11.2003, 18:36
Оригинал написал(а) nagash
прошло 9 месяцев и он понял...! =)
разродился, можно так сказать.
ужасссс.... ужасссс.. ужассс...
валидаторы js, в странице оставь, которую отправлять, валидатор php - вот и выводи чего надо, но не такими же путями (путьми..?..)...
ну понял и хорошо, но писали-то писали! =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.