[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хорошее начало
bob marley
Доброго времени суток,друзья и недруги! B)
Рад вас видеть здесь ;)
Начал бооольшооой проект..Сделал пол авторизации..
Даже меньше половины :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. ЗАЧЕМ КАПС?

Спустя 1 минута, 27 секунд (1.02.2012 - 15:16) EvilDev написал(а):
Сделай Error через switch
проверяй логин и пароль отдельно, а то как то не логично 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, а потом

я вообще изначально хотел так сделать как вы говорите,только я не знал как..Но я чувству вы мне объясните сейчас biggrin.gif не так ли? smile.gif

Цитата (Игорь_Vasinsky @ 1.02.2012 - 12:31)
в функции авторизируешь (если уж те так хочеться в функции) - а функция возращает либо true либо false

Я хочу чтобы все происходило в функции,кроме одного..проверка,все поля ли заполнены,а если все то значения передаю в функцию и она там уже все делает как надо smile.gif

Спустя 1 минута, 2 секунды (1.02.2012 - 15:39) bob marley написал(а):
Цитата (bob marley @ 1.02.2012 - 12:38)
Я хочу чтобы все происходило в функции,кроме одного..проверка,все поля ли заполнены,а если все то значения передаю в функцию и она там уже все делает как надо

мне кажется это не сложно и удобно..ну это на мой взгляд ph34r.gif

Спустя 2 минуты, 22 секунды (1.02.2012 - 15:41) Игорь_Vasinsky написал(а):
если ошибка

$errors[] = 'текст ошибки';

а когда пришло время что нить сказать юзеру то проверяешь - есть ли массив $errors, если нет - то говоришь - всё ок.

Спустя 2 минуты, 43 секунды (1.02.2012 - 15:44) bob marley написал(а):
Игорь_Vasinsky
Спасибо:)
сейчас сделаемс happy.gif


_____________
伊戈尔
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.