2013-12-13 3 views
0

Я хочу подключиться к моему сайту с именем, фамилией или электронной почтой (и, конечно же, с паролем). Проблема в том, что в базе данных имя и фамилия не находятся в одном столбце. Мой вопрос в том, как, используя php, проверить, есть ли у $ _post адрес электронной почты, и если не взять два слова и сделать массив с 2 именами.Каждое слово, которое вы пишете на входе, войдет в массив

ответ

1

Что касается фильтра электронной почты: у PHP есть фильтры проверки.

Вы можете найти больше информации здесь: http://www.php.net/manual/en/filter.filters.validate.php

В вашем случае, вы хотите использовать FILTER_VALIDATE_EMAIL:

if(filter_var($email, FILTER_VALIDATE_EMAIL)) 
{ ... } 

в отношении части с двумя ords, используйте функцию взрываются.

Синтаксис функции взрываются:

array explode (string $delimiter , string $string) 

В вашем случае:

$array = explode(' ', $string); 
1

Если у вас есть строка со словами, то вы можете просто использовать функцию explode(), чтобы каждое слово в качестве значения массива, как:

<?php 
    $str = "Alpha Beta Gamma"; 
    $str_array = explode(" ",$str); 
    echo $str_array[0]; //Alpha 
    echo $str_array[1]; //Beta 
    echo $str_array[2]; //Gamma 
?> 

Может быть, это то, что вы ищете, но ваш вопрос не ясно.

2

Вы можете использовать регулярные выражения, чтобы проверить, является ли вход по электронной почте или имя пользователя.

//Regular expression for email addresses 
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 

     $password = $_POST['password']; 

//Check if the input is an email or first and last name 
if(preg_match($regex, $_POST['input'], $match)){ 
     $email = $_POST['input']; 
}else{ 
     //Assuming the user entered "Firstname Lastname" 
     list($firstname,$lastname) = explode(" ", $_POST['input']);   
} 
+0

Большое спасибо! –

+0

Добро пожаловать! Рад помочь. –

Смежные вопросы