|
|
|
| Помогите, что-то не так у меня. :(
Это скрипт отправки данных из формы по e-mail. Проверка первых трёх полей (имя, WMID, кошелёк) идёт нормально. Но при проверке правильности записи адреса e-mail возникает следующая ошибка:
<b>Warning:</b> preg_match(): Compilation failed: range out of order in character class at offset 17 in <b>f:\home\localhost\www\form.php</b> on line <b>48</b>
И даже если ввести e-mail правильно, то все равно ошибка.
Ну а вот сам скрипт:
<?
$action=$HTTP_POST_VARS['action'];
if (!empty($action))
{
if (!empty($name))
{
$name=substr($HTTP_POST_VARS['name'],0,30);
}
else
{
require "form.htm";
echo "<br><b><font color=red>Введите имя!</font></b>";
exit;
}
if (!empty($wmid)) {
if (!preg_match("/^[0-9]{12}$/",$wmid)) {
require "form.htm";
echo "<br><b><font color=red>WMID должен состоять 12 из цифр!</font></b>";
exit;
}
} else {
require "form.htm";
echo "<br><b><font color=red>Введите свой WMID!</font></b>";
exit;
}
if (!empty($wmz))
{
If (!preg_match("/^Z[0-9]{12}$/",$wmz))
{
require "form.htm";
echo "<br><b><font color=red>Ваш Z-кошелёк должен состоять из буквы Z и 12-ти цифр!</font></b>";
exit;
}
$wmz=substr($HTTP_POST_VARS['wmz'],0,13);
}
else
{
require "form.htm";
echo "<br><b><font color=red>Введите ваш Z-кошелёк!</font></b>";
exit;
}
if (!empty($email))
{
if (!preg_match("/[0-9a-z_]+@[0-9a-Z_^\.]+\.[a-z]{2,3}/i", $email))
{
require "form.htm";
echo '<br><b><font color=red>Введите e-mail в виде your_name@server.com</font></b>'; // Вот тут проблема!
exit;
}
}
else
{
require "form.htm";
echo '<br><b><font color=red>Введите свой e-mail!</font></b>';
exit;
}
if (!empty($referer))
{
$referer=trim($referer);
}
else
{
$referer='Нет реферера';
}
$name=trim($name);
$wmid=trim($wmid);
$wmz=trim($wmz);
$email=trim($email);
$msg='Заявка от пользователя: <br> Имя: ' .$name. '<br> WMID: ' .$wmid. '<br> WM(Z): ' .$wmz. '<br> e-mail: ' .$email. '<br> Referer: ' .$referer. '<br>' .$comments. '';
if (mail('homebusiness@bk.ru', 'Заявка', $msg))
{
echo ('Ваши данные успешно отправлены!');
}
else
{
echo 'Ошибка!';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Nickson
(06.04.2006 в 23:17)
| | Исправьте регулярное выражение для проверки e-mail следующим образом
"/[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,6}/i"
|
| |
|
|
|
|
|
|
|
для: cheops
(07.04.2006 в 00:36)
| | Вот спасибо! Работает!
А вы не могли бы подсказать, что же всё таки означают добавленные чёрточки, - ведь в книгах такого не находил. | |
|
|
|