Почему не работает проверка телефона? Где я ошибся? Всегда пишет, что нужно ввести буквами. И не могу отключить проверку капчи, вроде нашел, удаляю, но всё равно требует.
?<?php
/* config start */
$emailAddress = '';
/* config end */
require "phpmailer/class.phpmailer.php";
session_name("fancyform");
session_start();
foreach($_POST as $k=>$v)
{
if(ini_get('magic_quotes_gpc'))
$_POST[$k]=stripslashes($_POST[$k]);
$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
}
$err = array();
if(!checkLen('name'))
$err[]='The name field is too short or empty!';
if(!phone('phone'))
$err[]='The phone field is too short or empty!';
else if(!phone($_POST['phone']))
$err[]='Your phone is not valid!';
if(!checkLen('email'))
$err[]='The email field is too short or empty!';
else if(!checkEmail($_POST['email']))
$err[]='Your email is not valid!';
if(!checkLen('subject'))
$err[]='You have not selected a subject!';
if(!checkLen('subject1'))
$err[]='You have not selected a subject!';
if(!checkLen('message'))
$err[]='The message field is too short or empty!';
if((int)$_POST['captcha'] != $_SESSION['expect'])
$err[]='The captcha code is wrong!';
if(count($err))
{
if($_POST['ajax'])
{
echo '-1';
}
else if($_SERVER['HTTP_REFERER'])
{
$_SESSION['errStr'] = implode('<br />',$err);
$_SESSION['post']=$_POST;
header('Location: '.$_SERVER['HTTP_REFERER']);
}
exit;
}
$msg=
'<strong>Èìÿ:</strong> '.$_POST['name'].'<br />
<strong>e-mail:</strong> '.$_POST['email'].'<br />
<strong>IP:</strong> '.$_SERVER['REMOTE_ADDR'].'<br /><br />
<strong>Ñîîáùåíèå:</strong><br /><br />
'.nl2br($_POST['message']).'
';
$mail = new PHPMailer();
$mail->IsMail();
$mail->AddReplyTo($_POST['email'], $_POST['name']);
$mail->AddAddress($emailAddress);
$mail->SetFrom($_POST['email'], $_POST['name']);
$mail->Subject = "Tåìà ïèñüìà: ".$_POST['subject'];
$mail->MsgHTML($msg);
$mail->Send();
unset($_SESSION['post']);
if($_POST['ajax'])
{
echo '1';
}
else
{
$_SESSION['sent']=1;
if($_SERVER['HTTP_REFERER'])
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;
}
function checkLen($str,$len=2)
{
return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len;
}
function checkEmail($str)
{
return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);
}
function phone($phone)
{
$pattern = "/^((8)|([\+]?(7)))+(?(?=([ -]))[ -]?\(?\d{3}\)?)+(?(?=([ -]))[ -]?\d{3})+(?(?=([ -]))[ -]?\d{4})$/";
if(preg_match($pattern, $phone))
{
return true;}
return false;}
?>