Warning: array_key_exists(): The second argument should be either an array or an object in /hsphere/local/home/magistr/codeismy.name/ads/sape.php on line 695 Warning: array_merge(): Argument #2 is not an array in /hsphere/local/home/magistr/codeismy.name/wp-content/plugins/wp-pagenavi/scb/Options.php on line 46

Проверка email’a на PHP и Javascript

Дата: Июль 3, 2009

(2) комментариев

Очень часто необходимо сделать проверку введённого email адреса, и в этой статье я покажу 2 способо проверки:

  • При помощи javascript
  • Средствами PHP

Условиями проверки в данном случае являются наличие «собачки», число символов после собачки не менее 3-х и наличии там же точки.
Для PHP мы будем использовать регулярные выражения и функцию preg_match

В примере для javascript’a мы напишем функцию (isValidEmailAddress) в которую будем посылать долученный ранее из DOM строку str.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 <script language="JavaScript">
function trim(str) {
    var newstr = str.replace(/^\s*(.+?)\s*$/, "$1");
    if (newstr == " ") {
        return "";
    }
    return newstr;
}
function drop_spaces(str) {
    var newstr = trim(str); //функцию trim() см. выше
    return newstr.replace(/(\s)+/g, "");
}
function isValidEmailAddress(email) {
    var template = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/;
    email = drop_spaces(email); //функцию drop_spaces() см. выше
    if (template.test(email)) {
        return true;
    }
   

Данная функция возвращает true в случае успеха и false если какоето из условий не найдено, матюкаясь при этом :)
Для PHP мы такого извращения не будем делать, так как обычно javascript выполняет необходимый поиск..

1
2
3
4
5
<?php
$email=$_GET['email'];
if (!preg_match("/^(?:[a-z0-9]+(?:[-_]?[a-z0-9]+)?@[a-z0-9]+(?:\.?[a-z0-9]+)?\.[a-z]{2,5})$/i",trim($email)))
{
 $ERROR .= 'Проверьте Ваш E-Mai

Надеюсь эта статья вам помогла

a




    2 комментариев на "Проверка email’a на PHP и Javascript"

    вася сказал:
    22.12.2009

    И кто тут пишет быдлокод?
    В JS никто регулярки не отменял, гугли объект RegExp.

    Пример:

    var a=/[a-z]+/g;
    var b=new RegExp(«[a-z]{1,5}»,»g»);

    А во-вторых, ereg для PHP — бред. В пхп 6 ее даже убрали, потому что она медленнее preg_match и уязвима к атаке null-байтом.

    Строка $email=$_GET['email']; — эпик.
    Передаем параметр вида

    script.php?email[]=1

    и видим раскрытие путей.

    Короче, блог не радует, учит плохому коду, хотя ориентирован на начинающих

    Sergey сказал:
    22.12.2009

    статью писал оч давно, тогда было лень замарачиваться:) сделал как проще.
    замечания исправил.
    спасибо за найденый быдлокод :)


    Вы можете продолжить обсуждение этой статьи на форуме


    Имя : 
    Почта : 
    Сайт : 
    Комментарий : 

    Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

    Создание сайта - Echo-group Раскрутка сайтов