Рад вас видеть здесь ;)
Начал бооольшооой проект..Сделал пол авторизации..
Даже меньше половины :D
Вот так вот получилось,пробегитесь по коду..Ошибочек не наблюдается каких-нибудь?
Свернутый текст
<?PHP
# НАЧНЕМС
ERROR_REPORTING(E_ALL);HEADER('CONTENT-TYPE: TEXT/HTML; CHARSET=UTF-8'); /// <<<< ВЫВОД ВСЕХ ОШИБОК, КОДИРОВКА UTF-8
# ФУНКЦИИ
FUNCTION ERROR($KEY=NULL) /// <<<< СОЗДАДИМ ФУНКЦИЮ ДЛЯ ОШИБОК
{
$ERROR = ARRAY(
0=>'<H4>логин должен состоять из англ букв и цифр.длинна логина должна быть не меньше 4 и не больше 12</H4>', /// <<<< ЕСЛИ НЕ ВЕРНОГО ФОРМАТА ЛОГИН
1=>'<H4>пароль должен состоять из англ букв и цифр.длинна пароля должна быть не меньше 6 и не больше 12</H4>' /// <<<< ЕСЛИ НЕ ВЕРНОГО ФОРМАТА ПАРОЛЬ
);
ECHO $ERROR[$KEY];
}
FUNCTION AUTHORIZATION($LOGIN_FUNCTION_LOGIN=NULL, $PASSWORD_FUNCTION_LOGIN=NULL) /// <<<< СОЗДАДИМ ФУНКЦИЮ ДЛЯ АВТОРИЗАЦИИ
{
IF($LOGIN_FUNCTION_LOGIN != NULL || $PASSWORD_FUNCTION_LOGIN != NULL) /// <<<< ЕСЛИ ЛОГИН И ПАРОЛЬ ЕСТЬ, ТО ПРОДОЛЖИМ
$LOGIN_PM = PREG_MATCH('/^[A-Za-z0-9]{4,12}$/', $LOGIN_FUNCTION_LOGIN); /// <<<< ЕСЛИ ПОЛУЧЕННЫЙ ЛОГИН ИЗ АНГЛ БУКВ И ЦИФР И >= 4 <= 12 СИМВОЛАМ, ТО $LOGIN_PM = 1
$PASSWORD_PM = PREG_MATCH('/^[A-Za-z0-9]{6,12}$/', $PASSWORD_FUNCTION_LOGIN); /// <<<< ЕСЛИ ПОЛУЧЕННЫЙ ЛОГИН ИЗ АНГЛ БУКВ И ЦИФР И >= 6 <= 12 СИМВОЛАМ, ТО $PASSWORD_PM = 1;
IF(ISSET($LOGIN_PM) && $LOGIN_PM == 0)
ECHO ERROR(0); /// <<<< ЕСЛИ ЛОГИН НЕВЕРНОГО ФОРМАТА
ELSE
$LOGIN = $LOGIN_FUNCTION_LOGIN; /// <<<< ЕСЛИ ЛОГИН ВЕРНОГО ФОРМАТА
IF(ISSET($PASSWORD_PM) && $PASSWORD_PM == 0)
ECHO ERROR(1); /// <<<< ЕСЛИ ПАРОЛЬ НЕВЕРНОГО ФОРМАТА
ELSE
$PASSWORD = $PASSWORD_FUNCTION_LOGIN; /// <<<< ЕСЛИ ПАРОЛЬ ВЕРНОГО ФОРМАТА
IF(ISSET($LOGIN) && ISSET($PASSWORD)) /// <<<< ЕСЛИ ВСЕ УДАЛОСЬ, ТО ПРОДОЛЖИМ
ECHO $LOGIN.' '.$PASSWORD; /// <<<< ВЫВЕДЕМ ПЕРЕМЕННЫЕ
}
?>
<?PHP
# КОД
AUTHORIZATION('admin', 'password'); /// <<<< ПОПРОБУЕМ
?>
Спустя 1 минута, 25 секунд (1.02.2012 - 15:11) alexbel2404 написал(а):
прогони весь код через strtolower, читать не реально.
Спустя 2 минуты, 24 секунды (1.02.2012 - 15:13) bob marley написал(а):
В смысле сделать строчные буквы?
Свернутый текст
<?php
# начнемс
error_reporting(e_all);header('content-type: text/html; charset=utf-8'); /// <<<< вывод всех ошибок, кодировка utf-8
# функции
function error($key=null) /// <<<< создадим функцию для ошибок
{
$error = array(
0=>'<h4>логин должен состоять из англ букв и цифр.длинна логина должна быть не меньше 4 и не больше 12</h4>', /// <<<< если не верного формата логин
1=>'<h4>пароль должен состоять из англ букв и цифр.длинна пароля должна быть не меньше 6 и не больше 12</h4>' /// <<<< если не верного формата пароль
);
echo $error[$key];
}
function authorization($login_function_login=null, $password_function_login=null) /// <<<< создадим функцию для авторизации
{
if($login_function_login != null || $password_function_login != null) /// <<<< если логин и пароль есть, то продолжим
$login_pm = preg_match('/^[A-Za-z0-9]{4,12}$/', $login_function_login); /// <<<< если полученный логин из англ букв и цифр и >= 4 <= 12 символам, то $login_pm = 1
$password_pm = preg_match('/^[A-Za-z0-9]{6,12}$/', $password_function_login); /// <<<< если полученный логин из англ букв и цифр и >= 6 <= 12 символам, то $password_pm = 1;
if(isset($login_pm) && $login_pm == 0)
echo error(0); /// <<<< если логин неверного формата
else
$login = $login_function_login; /// <<<< если логин верного формата
if(isset($password_pm) && $password_pm == 0)
echo error(1); /// <<<< если пароль неверного формата
else
$password = $password_function_login; /// <<<< если пароль верного формата
if(isset($login) && isset($password)) /// <<<< если все удалось, то продолжим
echo $login.' '.$password; /// <<<< выведем переменные
}
?>
<?php
# код
authorization('admin', 'password'); /// <<<< попробуем
?>
Спустя 1 минута, 22 секунды (1.02.2012 - 15:15) Nikitian написал(а):
1. Для чего ограничивать пользовательскую фантазию в применении к паролю?
2. ЗАЧЕМ КАПС?
2. ЗАЧЕМ КАПС?
Спустя 1 минута, 27 секунд (1.02.2012 - 15:16) EvilDev написал(а):
Сделай Error через switch
проверяй логин и пароль отдельно, а то как то не логично 100 проверок ненужных делать
Убери Null у пароля и логина, эти параметры всегда должны быть, проверяй до входа в функцию
проверяй логин и пароль отдельно, а то как то не логично 100 проверок ненужных делать
Убери Null у пароля и логина, эти параметры всегда должны быть, проверяй до входа в функцию
Спустя 1 минута, 51 секунда (1.02.2012 - 15:18) bob marley написал(а):
Цитата (Nikitian @ 1.02.2012 - 12:15) |
2. ЗАЧЕМ КАПС? |
Nikitian кто это такой?
Цитата (Nikitian @ 1.02.2012 - 12:15) |
1. Для чего ограничивать пользовательскую фантазию в применении к паролю? |
это не пользователей ограничивать..могу к паролю ещё и русские буквы добавить конечно!
EvilDev
без null ошибки выдает из-за error_reporting(E_ALL) если функцию не запускать..а она будет запускаться после нажатия на этой же страницы кнопки войти!
Спустя 2 минуты, 48 секунд (1.02.2012 - 15:21) bob marley написал(а):
EvilDev
Цитата (bob marley @ 1.02.2012 - 12:13) |
if($login_function_login != null || $password_function_login != null) /// <<<< если логин и пароль есть, то продолжим |
ты об этом?это да,убрать можно..но я пока делаю,проверяю что как написал эту строку!
Спустя 6 минут (1.02.2012 - 15:27) bob marley написал(а):
Свернутый текст
<?php
# начнемс
error_reporting(e_all);header('content-type: text/html; charset=utf-8'); /// <<<< вывод всех ошибок, кодировка utf-8
# функции
function error($key=null) /// <<<< создадим функцию для ошибок
{
$error = array(
0=>'<h4>логин должен состоять из англ букв и цифр.длинна логина должна быть не меньше 4 и не больше 12</h4>', /// <<<< если не верного формата логин
1=>'<h4>пароль должен состоять из англ букв и цифр.длинна пароля должна быть не меньше 6 и не больше 12</h4>' /// <<<< если не верного формата пароль
);
echo $error[$key];
}
function authorization($login_function_login=null, $password_function_login=null) /// <<<< создадим функцию для авторизации
{
$login_pm = preg_match('/^[A-Za-z0-9]{4,12}$/', $login_function_login); /// <<<< если полученный логин из англ букв и цифр и >= 4 <= 12 символам, то $login_pm = 1
$password_pm = preg_match('/^[A-Za-z0-9]{6,12}$/', $password_function_login); /// <<<< если полученный логин из англ букв и цифр и >= 6 <= 12 символам, то $password_pm = 1;
if(isset($login_pm) && $login_pm == 0)
echo error(0); /// <<<< если логин неверного формата
else
$login = $login_function_login; /// <<<< если логин верного формата
if(isset($password_pm) && $password_pm == 0)
echo error(1); /// <<<< если пароль неверного формата
else
$password = $password_function_login; /// <<<< если пароль верного формата
if(isset($login) && isset($password)) /// <<<< если все удалось, то продолжим
echo $login.' '.$password; /// <<<< выведем переменные
}
?>
<?php
# код
authorization('admin', 'password'); /// <<<< попробуем
?>
Спустя 4 минуты, 39 секунд (1.02.2012 - 15:31) Игорь_Vasinsky написал(а):
а нельзя просто во время ошибок - кидать их в массив $errors, а потом
if($errors)
{
foreach()
.....
}
Цитата |
if(isset($password_pm) && $password_pm == 0) |
стартавать скрипт по нажатой кнопке, а не проверять на существование каждое поле.
вообщем :ph34r:
и вообще - в функции авторизируешь (если уж те так хочеться в функции) - а функция возращает либо true либо false
Спустя 6 минут, 13 секунд (1.02.2012 - 15:38) bob marley написал(а):
Цитата (Игорь_Vasinsky @ 1.02.2012 - 12:31) |
а нельзя просто во время ошибок - кидать их в массив $errors, а потом |
я вообще изначально хотел так сделать как вы говорите,только я не знал как..Но я чувству вы мне объясните сейчас не так ли?
Цитата (Игорь_Vasinsky @ 1.02.2012 - 12:31) |
в функции авторизируешь (если уж те так хочеться в функции) - а функция возращает либо true либо false |
Я хочу чтобы все происходило в функции,кроме одного..проверка,все поля ли заполнены,а если все то значения передаю в функцию и она там уже все делает как надо
Спустя 1 минута, 2 секунды (1.02.2012 - 15:39) bob marley написал(а):
Цитата (bob marley @ 1.02.2012 - 12:38) |
Я хочу чтобы все происходило в функции,кроме одного..проверка,все поля ли заполнены,а если все то значения передаю в функцию и она там уже все делает как надо |
мне кажется это не сложно и удобно..ну это на мой взгляд
Спустя 2 минуты, 22 секунды (1.02.2012 - 15:41) Игорь_Vasinsky написал(а):
если ошибка
а когда пришло время что нить сказать юзеру то проверяешь - есть ли массив $errors, если нет - то говоришь - всё ок.
$errors[] = 'текст ошибки';
а когда пришло время что нить сказать юзеру то проверяешь - есть ли массив $errors, если нет - то говоришь - всё ок.
Спустя 2 минуты, 43 секунды (1.02.2012 - 15:44) bob marley написал(а):
Игорь_Vasinsky
Спасибо:)
сейчас сделаемс
Спасибо:)
сейчас сделаемс
_____________
伊戈尔