Проверка e-mail при рег. на уникальность

Тема в разделе "Как сделать...", создана пользователем slateclub, 11 ноя 2012.

  1. slateclub

    slateclub Постоялец

    Регистр.:
    5 ноя 2008
    Сообщения:
    69
    Симпатии:
    4
    Доброго времени Всем )
    На гугле и я'ндексе можно использовать как vpup@gmail(ya).com, так и v.Pup@gmail(ya).com. Как можно проверить почтовый ящик юзера при рег. на сайте на уникальность без учета регистра и точек?, а то получается, что один пользователь может зарегистрироваться N-ое кол-во раз используя один почтовый ящик.
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Я бы добавил еще одно поле в таблицу с пользователями, в котором будет хранится "универсальный" маил. Заполняется оно строкой, полученной из указанного мыла:
    PHP:
    $unic_mail strtolower(str_replace('.'''$email));
    В принципе, SQL разрешает работать со строками, а такая проверка нужна только при регистрации потому можно и на sql написать аналог.
     
    slateclub нравится это.
  3. slateclub

    slateclub Постоялец

    Регистр.:
    5 ноя 2008
    Сообщения:
    69
    Симпатии:
    4
    все гениальное - просто :)

    Вопрос немного не в кассу, но чтобы не создавать лишних тем спрошу здесь:
    Вот есть такой код:
    PHP:
    $array = array(=> 'blue'=> 'red'=> 'green'=> 'red');
    $key=array_search('blue'$array);
    if (
    $key!='') {
    echo 
    "значение найдено его ключ равен $key<hr>";
    } else
    echo 
    'значение не найдено<hr>';
    В этом случае результат = значение не найдено, хотя блюэ присутствует в массиве. Но если вторую строку изменить на: $key=array_search('blue', $array).'';, то все работает как надо.

    Что это за глюк такой? и самое главное почему в первом случае получается такой результат?
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.522
    Симпатии:
    1.376
    Стоит смотреть на описание того, что может вернуть функция. array_search в случае неудачи возвращает false и поскольку есть ключ со значением 0, то проверять надо так же и по типу:
    PHP:
    if ($key!==false) {
    Линки:
    Перейти по ссылке
    Перейти по ссылке
     
    slateclub нравится это.