Ограничение расширений электронной почты, представленных в текстовой форме HTML - PullRequest
0 голосов
/ 16 марта 2012

Как я могу ограничить расширение адреса электронной почты, которое может быть отправлено в HTML form с использованием PHP? Например, я хочу, чтобы все пользователи вводили @gmail.com адрес электронной почты.


РЕДАКТИРОВАТЬ: я пытался использовать операторы if и substr(), чтобы вернуть последние десять символов в представленный адрес электронной почты (который, если он содержит правильное расширение адреса электронной почты, должен быть @gmail.com). Тем не менее, это, вероятно, не самый эффективный / безопасный метод. Кто-нибудь знает какие-то другие, более безопасные подходы к решению этой задачи.

Пример:

if(isset($_POST['submit'])) {
    $email = trim(strtolower($_POST['email']));

    if(substr($email, -10) != '@gmail.com') {
        //show error message here
    } else {
        //continue script
    }

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Новые элементы html 5 должны позволить вам сделать это, так как они примут атрибут 'pattern', в который можно вставить регулярное выражение, чтобы ограничить конец строки @ gmail.com.Вы можете сделать то же самое с javacsript / jquery и проверить форму по сценарию при отправке.\ @ gmail.com $ должен это сделать.

1 голос
/ 16 марта 2012

Да, чувак, то, что сказал Уайтрейнбоу, хорошо, но его проверка на стороне клиента, которую можно легко обойти. Вы должны сделать это, но также проверить это в php-скрипте проверки формы. Должно быть что-то вроде этого:

/*Say the user entered email_add@gmail.com*/
$website = explode("@", $_POST['email']);
/*$website is now => array(0 => "email_add", 1 => "gmail.com")*/
$website = end($website);      // Grab the last element of the array

if($website != "gmail.com")
{// Show some error here}

/*SUBSTITUTE METHOD: A Shorter method that elias suggested in a comment below*/
if (!stristr($_POST['email'],'@gmail.com'))
{// Show some error here}

P.S. Есть более короткий способ получить последний элемент массива и взорваться, не могу вспомнить его из головы, хотя ... Google it

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...