подтвердить имя пользователя, пароль и адрес электронной почты с php - PullRequest
2 голосов
/ 09 августа 2010

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

Это значения:

$email=$_POST['email'];
$username=$_POST['uname'];
$passwd=$_POST['pass'];
$passwd2=$_POST['passcopy'];

Пока у меня есть подтверждение по электронной почте:

if(!(preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email'])))
    die(msg(0,"You haven't provided a valid email"));

пароль равен:

if ($passwd != $passwd2) {
die(msg(0,"Passwords are not equal"));
}

длина пароля:

if ((strlen($passwd) < 8) || (strlen($passwd) > 16)) {
die(msg(0,"Your password must be between 8 and 16 characters. Please type in a longer password"));
}

Я знаю, что мне нужно подтвердить имя пользователя.Я думал только о нижнем регистре a-z0-9, чтобы избежать людей, делающих подобные имена пользователей?Тогда пароль, какие символы я должен разрешить в пароле?

PS.Я до сих пор не понимаю preg_match и ereg.Если бы кто-нибудь мог объяснить это "/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+ и сделать preg_match для проверки моего имени пользователя и пароля, это было бы очень полезно.

Ответы [ 5 ]

1 голос
/ 29 ноября 2010
"/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+/"// write same checking on same line

#1# ^[\.A-z0-9_\-\+]+

символ должен начинаться с (.a-z0-9 _- +) одного или нескольких предыдущих символов в []

#2# [@]

этот символ не должен вводиться /// помещать вмусор не вводить его

#3# [A-z0-9_\-]+$// it should be ending with $char

строка содержит символ между (A-Z0-9_-) средним знаком знака плюс является одним или несколькими предыдущими символами и $ означает, что символ должен заканчиватьсяс предыдущим символом в квадратных скобках.

вы можете использовать простое регулярное выражение, как и ваше предыдущее ..

/^[A-z0-9_\-\+@]+$/ // My regex script do same as your previous code

надеюсь, что это может помочь вам1018 *

1 голос
/ 09 августа 2010

строка ^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+ - это регулярное выражение, которое описывает шаблон, с которым вы проверяете строку электронной почты.

Позвольте мне разбить различные части для вас.

^ это указывает на то, что шаблон должен начать совпадение в начале строки.

[\.A-z0-9_\-\+]+ эта часть состоит из двух частей: сначала [\.A-z0-9_\-\+], которая описывает класс символов, а затем +, который указывает, что вы хотите один или несколько из предыдущего класса.

[@] соответствует ровно одному знаку @.

[A-z0-9_\-]+ другой класс символов с + после этого означает, что вам нужен один или несколько символов из этого класса.

0 голосов
/ 11 августа 2012

Подтверждение адреса электронной почты:

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)  == TRUE) {
    $email = $_POST["email"];
} else {
    echo "email error";
    die;
}

http://php.net/manual/en/filter.filters.validate.php

0 голосов
/ 09 августа 2010

preg_match и ereg - это два способа сопоставления строки с помощью регулярного выражения .Функции preg используют механизм PCRE (регулярное выражение, совместимое с perl) и являются рекомендованными функциями регулярных выражений для php;ereg функции устарели.

Я не буду объяснять шаблон, потому что он описан в других ответах, но если вы хотите действительно подробное руководство по регулярным выражениям (и бесплатное для загрузки), проверьтеучебник на регулярных выражениях.info.

0 голосов
/ 09 августа 2010

PS.Я до сих пор не понимаю preg_match и ereg.Если кто-то может объяснить это

Это очень плохой пример того, как проверить действительный адрес электронной почты.Попробуйте Google для лучших примеров.Обратите внимание, что только то, что оно соответствует регулярному выражению good , не означает, что человек получает почту там - гораздо лучший подход, если вам нужно подтвердить адрес электронной почты, это отправить по почте URL-адрес активации или начальный пароль дляпредоставленный адрес.

создайте preg_match для проверки моего имени пользователя и пароля

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

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

C.

...