09/07/2010
echo convert_cyr_string('Хулосаи Шумо',"w","k");?>
header( "Content-Type: text/html; charset=KOI8-R" );
require ('config.inc');
if (isset($form))
{
$error = ValidForm();
if ($error[0] == '')
{
SendMail();
}
else
{
echo 'Найдены следующие ошибки: '.$error[0].' ';
ShowForm();
echo '
';
}
}
else
{
ShowForm();
}
function ShowForm()
{
if((isset($GLOBALS["error"][0])) && ($GLOBALS["error"][0]!= ''))
{
$val[0] = $GLOBALS["form"]["user"];
$val[1] = $GLOBALS["form"]["email"];
$val[2] = $GLOBALS["form"]["comments"];
}
else
{
$val[0] = $val[1] = $val[2] = '';
$class[0] = $class[1] = $class[2] = '';
}
(isset($GLOBALS["error"][1])) ? $class[0] = ' class=error' : $class[0] = '';
(isset($GLOBALS["error"][2])) ? $class[1] = ' class=error' : $class[1] = '';
(isset($GLOBALS["error"][3])) ? $class[2] = ' class=error' : $class[2] = '';
?>
echo convert_cyr_string('Хулосаи худро инчо нависед:',"w","k");?>
TYPE=text SIZE=26 MAXLENGTH=25 NAME=form[user] VALUE='=$val[0]?>'>
echo convert_cyr_string('(то 25 нишона)',"w","k");?>
echo convert_cyr_string('Нишонии электронии шумо:',"w","k"); ?>
TYPE=text SIZE=26 MAXLENGTH=25 NAME=form[email] VALUE='=$val[1]?>'>
echo convert_cyr_string('(то 25 нишона)',"w","k"); ?>
echo convert_cyr_string('Матни худро инчо нависед:',"w","k");?>
echo convert_cyr_string('(то 300 нишона)',"w","k");?>
' class=but>
' class=but>
}
function ValidForm()
{
$error[0] = '';
/* проверяем с родного-ли хоста пришли данные */
$referer = getenv("SERVER_NAME");
if (!ereg($GLOBALS["SERVER"],$referer))
{
echo "Access denied! Only from ".$GLOBALS["SERVER"]." ";
exit;
}
/* проверяем не ввел-ли кто фигню типа длинного слова skghsdghfdhgkfdhgkhdfkghdfkghdfkghfdjghfjghfghjfhgfdhgkdfhhkfhgkfhgkh */
$array = explode (" ", $GLOBALS["form"]["comments"]);
foreach ($array as $word)
if (strlen($word) > 30)
{
$word = trim (str_replace("\r\n", "", $word));
$error[0] .= " Слишком длинное слово: ( ".htmlspecialchars($word)." ). До или после нажатия <enter> необходим пробел. ";
$error[3] = 1;
}
/* проверяем обязательные поля на наличие данных */
if ((trim($GLOBALS["form"]["user"]) == '') || (trim($GLOBALS["form"]["comments"]) == ''))
{
$error[0] .= ' Не заполнены обязательные поля. ';
$error[1] = 1;
}
else // проверяем на минимум символов
{
if (strlen($GLOBALS["form"]["user"]) < 3)
{
$error[0] .= ' Слишком мало символов в поле Имя! ';
$error[1] = 1;
}
if (strlen($GLOBALS["form"]["comments"]) < 5)
{
$error[0] .= ' Слишком мало символов в поле Сообщение! ';
$error[3] = 1;
}
}
/* обрезаем все данные до нужной длины (на всякий случай) */
$GLOBALS["form"]["user"] = trim(substr($GLOBALS["form"]["user"],0,25));
$GLOBALS["form"]["email"] = trim(substr($GLOBALS["form"]["email"],0,25));
$GLOBALS["form"]["comments"] = trim(substr($GLOBALS["form"]["comments"],0,300));
/* проверяем правильность e-mail */
if ((!ereg("^[a-z0-9_\.-]+@([a-z0-9][a-z0-9-]+\.)+[a-z]{2,4}$", $GLOBALS["form"]["email"])) && (trim($GLOBALS["form"]["email"]) != ''))
{
$error[0] .= ' Wrong e-mail. ';
$error[2] = 1;
}
/* если есть HTML - вырубаем */
$html = ' This simbols are prohibited - ';
if ( ereg ( "[<>&]+", $GLOBALS["form"]["user"], $error_1 ) )
{
$error[0] .= $html.'( '.htmlspecialchars($error_1[0]).' ) ';
$error[1] = 1;
}
if ( ereg ( "[<>&]+", $GLOBALS["form"]["comments"], $error_3 ) )
{
$error[0] .= $html.'( '.htmlspecialchars($error_3[0]).' ) ';
$error[3] = 1;
}
return $error;
}
function SendMail()
{
@mail($GLOBALS["ADMIN"],
$GLOBALS["SUBJECT"],
$GLOBALS["form"]["user"]." sent:\n\n". $GLOBALS["form"]["comments"]."\ne-mail:".$GLOBALS["form"]["email"]);
echo '
'.$GLOBALS["form"]["user"].', Your message has been sent. ';
}
?>