PDA

Просмотр полной версии : Ошибка!


барт
03.02.2003, 00:27
if (($sender_name == "") || ($sender_email == "") || ($message == "") || ($subject == "")) {
echo "
<script language=\"JavaScript\">
alert('Все поля необходимы для заполнения!')
</script>";
header ("Location:mail.html");
exit;
}

В чем ошибка???
:confused: :confused: :confused: :confused: :confused:

Crazy
03.02.2003, 01:32
Ошибка:

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.

metton
03.02.2003, 01:37
2барт
на всякий случай краткий перевод ответа Crazy: нельзя, чтобы перед отправкой хедера выводилось что-либо в броВУзер...

Crazy
03.02.2003, 01:40
metton, ему это не поможет. Посмотри внимательно, ЧТО он пытается сделать...

metton
03.02.2003, 01:51
2Crazy
Он пытается/-лся:
- отослать хедеры после того как они уже отосланы
- прописать в Location относительные пути (хотя это не жестко - можно и так. ("some clients accept relative URIs"))

Ещё что-то?

Crazy
03.02.2003, 02:57
Hint: представь, что команда header правильно сработает (например -- при включенном кэшировании). Какой смысл будет иметь код, который при этом попадет в браузер?

барт
04.02.2003, 00:43
Народ!
Я php только начел изучать.
Объясните, если не трудно.

Alex Wanderer
04.02.2003, 12:10
... И тут Барта отправили на http://www.php.net/ (или http://ru.php.net/manual/ru/ на русском)... как обычно...

Кстати, очень стоит туда сходить

барт
05.02.2003, 00:58
И это та называеш по русски?!?!?!?!?!?!?!?!?!
:eek: :eek: :eek: :eek: :eek: :eek: :eek: :eek:
Народ, дайте работающий код чтоли ;) ;) ;)

nagash
05.02.2003, 03:18
ну блин

if (($sender_name == "") || ($sender_email == "") || ($message == "") || ($subject == "")) {
header ("Location:mail.html");
exit;
}

Alex Wanderer
05.02.2003, 11:36
В дополнение к коду Нагаша: до этих строк в бровзер ничего не должно выводиться

lexass
05.02.2003, 12:59
... человека в пыль превратили :)

барт
05.02.2003, 19:44
И как же это зделать????????????????????????????????????????

nagash
05.02.2003, 19:50
что сделать то?

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.

juggy
09.02.2003, 23:59
if ((!isset($sender_name)) || (!isset($sender_email)) || (!isset($message)) || (!isset($subject)) ) {
echo "
<script language=\"JavaScript\">
alert('Все поля необходимы для заполнения!')
document.location=\"mail.html\";
</script>";
}



На самом деле все проще....

metton
10.02.2003, 00:55
2juggy
ИМХО, решение не очень. Всё-таки при правильном использовании хедера он работает на 100%, а JS можно отключить.

барт
02.11.2003, 16:09
Всем спасибо!
Я уже все понел!

nagash
02.11.2003, 17:01
прошло 9 месяцев и он понял...! =)

iLoveYou
02.11.2003, 18:36
Оригинал написал(а) nagash
прошло 9 месяцев и он понял...! =)
разродился, можно так сказать.

Nirva
02.11.2003, 22:40
ужасссс.... ужасссс.. ужассс...
валидаторы js, в странице оставь, которую отправлять, валидатор php - вот и выводи чего надо, но не такими же путями (путьми..?..)...

ну понял и хорошо, но писали-то писали! =)