Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2010, 13:35   #1
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию ошибка в скрипте

Не работают обработчики ошибок(в циклах if), никак не могу понять почему.
Буду рад, если укажете на ошибку

PHP код:
<?php
$mailto 
"benderbej@mail.ru";
$charset "utf-8";
$subjectready '=?UTF-8?B?'.base64_encode($subject).'?=';
$nameready '=?UTF-8?B?'.base64_encode($name).'?=';
$content "text/plain";
$status " ";

$errors_name 'введите ваше имя';
$errors_mailfrom 'введите свой E-mail';
$errors_incorrect 'заполните правильно Ваш E-mail';
$errors_message 'наберите сообщение';
$send 'ваше письмо отправлено!';



if (isset(
$name) && $name == "")
{
$status "$errors_name";
}
elseif (isset(
$mailfrom) && $mailfrom == "")
{
$status "errors_mailfrom";
}
elseif(isset(
$mailfrom) && !eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$",$mailfrom))
//elseif(isset($mailfrom) && !preg_match("/^([a-z,._,0-9])+@([a-z,._,0-9])+(.(
//[a-z])+)+$/",$mailfrom))
{
$status "$errors_incorrect";
unset(
$mailfrom);
}
elseif (isset(
$message) && $message == "")
{
$status "errors_message";
}
elseif (!empty(
$_POST))
{
$headers "MIME-Version: 1.0\r\n";
$headers .="Content-Type: $content charset=$charset\r\n";
$headers .= "Date: ".date("Y-m-d (H:i:s)",time())."\r\n";
$headers .= "From: \"$name\"<$mailfrom>\r\n";
$headers .= "X-Mailer: My Send E-mail\r\n";
mail("$mailto","$subject","$message","$headers");
unset(
$name$mailfrom$mailto$subject$message);
$status "$send";
}
даже когда ыорма пустая - при нажатии кнопки отправить пишеться $status=$send то есть "сообщение отправлено"

Последний раз редактировалось Bendebej; 10.03.2010 в 13:37.
Bendebej вне форума Ответить с цитированием
Старый 10.03.2010, 13:54   #2
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

elseif (!empty($_POST))

мне кажется в этом месте ошибко, скорее всего на этот скрипт с формы шлеца постом некие данные, а это вероятно проверка нажатия кнопки, мож потому что надо указывать что конкретно от всего что пршло в посте ты пытаешь обнаружить ну там $_POST['button'] ,хз мож и не так...
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 10.03.2010, 14:11   #3
Bendebej
Пользователь
 
Регистрация: 21.01.2010
Сообщений: 63
По умолчанию

Цитата:
Сообщение от mrgrudge Посмотреть сообщение
elseif (!empty($_POST))

мне кажется в этом месте ошибко, скорее всего на этот скрипт с формы шлеца постом некие данные, а это вероятно проверка нажатия кнопки, мож потому что надо указывать что конкретно от всего что пршло в посте ты пытаешь обнаружить ну там $_POST['button'] ,хз мож и не так...
вот сама форма
там есть кнопка submit как обычно
форма в том же php файле

PHP код:
echo "
<table width=\"430\" border=\"0\">
<tr>
<td height=\"50\" align=\"center\" colspan=\"2\"><font color=\"blue\">
$status</font></td>
</tr>
<form method=\"post\">
<tr>
<td width=\"86\">Ваше имя</td>
<td width=\"286\"><input type=\"text\"
name=\"name\"></td>
</tr>
<tr>
<td width=\"86\">Тема сообщения</td>
<td width=\"286\"><input type=\"text\"
name=\"subject\"></td>
</tr>
<tr>
<td>Ваш e-mail</td>
<td width=\"286\"><input type=\"text\"
name=\"mailfrom\"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width=\"286\">
<p align=\"center\">Сообщение</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width=\"286\">
<textarea name=\"message\"
cols=\"33\"
rows=\"10\"></textarea></td>
</tr>
<tr>
<td>Ваш e-mail</td>
<td width=\"286\"><input type=\"checkbox\"
name=\"sendcopy\"value=\"copys\"></td>
</tr>
<tr>
<td align=\"center\" colspan=\"2\">
<input type=\"submit\"
value=\"Отправить\" style=\"border: 1px
solid #000000\"></td>
</tr>
</form>
</table>\r\n"
;
?> 
решил трабл

Последний раз редактировалось Bendebej; 10.03.2010 в 14:34.
Bendebej вне форума Ответить с цитированием
Старый 10.03.2010, 14:39   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

$name, $mailfrom, $message
откуда берутся все эти переменные?

http://www.phpfaq.ru/globals
http://www.php.ru/manual/security.globals.html

Поменяйте на $_POST['name'], $_POST['mailfrom'], $_POST['message']
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в скрипте mkth PHP 0 21.02.2010 01:45
В скрипте кракозябры antiblef PHP 0 06.01.2010 17:15
Ошибка в скрипте (html+php) SwitchOFF PHP 4 17.08.2009 15:23
Помощь в скрипте Eretic JavaScript, Ajax 5 02.12.2008 14:48
Ошибка в скрипте Qsajeal PHP 11 03.06.2008 12:22