PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Проблема....
Поиск в теме | Версия для печати
Starlord
Отправлено: 05 Ноября, 2010 - 13:27:48
Новичок
Покинул форум
Сообщений всего: 50
Дата рег-ции: Окт. 2010
Откуда: Россия
Помог: 1 раз(а)
Есть файлик auth.php который подключается к странице, на которую необходимо поставить авторизацию. Вот содержимое:
Но существует ряд проблем:
1.
Решено
2.
Решено
Ну собственно все, помогите пожалуйста)
(Отредактировано автором: 07 Ноября, 2010 - 13:06:34)
-----Спасибо сообществу php.su за помощь...
Starlord
Отправлено: 06 Ноября, 2010 - 21:22:09
Новичок
Покинул форум
Сообщений всего: 50
Дата рег-ции: Окт. 2010
Откуда: Россия
Помог: 1 раз(а)
Народ, помогите пожалуйста
Подскажите, как правильно реализовать систему кук в моем скрипте
И еще, решил испоьзовать md5 хеш при регистрации и авторизации. При регистрации всё ок, а вот при авторизации не происходит выборка, хз почему
Вот частица кода:
PHP:
скопировать код в буфер обмена
$passy = $_POST [ "password" ] ;
$hash [ "password" ] = md5 ( $passy ) ;
.... .... ....
$sql = "SELECT * FROM users WHERE username = \" {$_POST [" username"]}\" AND password = \" {$hash [" password"]}\" " ;
Помогите разобраться с этими двумя вопросами, буду очень благодарен (Отредактировано автором: 06 Ноября, 2010 - 21:22:42)
-----Спасибо сообществу php.su за помощь...
Саныч
Отправлено: 06 Ноября, 2010 - 21:46:29
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010
Откуда: Украина, Запорожье
Помог: 62 раз(а)
А что с куками? Устанавливаете, затем по необходимости берете значение, проверяете...
Пример этой системки примерно такой
PHP:
скопировать код в буфер обмена
if ( вход через форму )
{
проверяем логин, пароль, сравниваем с базой.
если все ОК запускаем сессию.
если пользователь выбрал "Запомнить меня" устанавливаем куку, если не выбрал, а кука есть удаляем ее...
}
elseif ( есть сессия )
{
проверяем значения, если ошибка убиваем сессию
}
elseif ( есть кука )
{
проверяем значение, если ОК запуск сессию, если ошибка удаляем куку
}
else
{
... если войти не удалось...
}
(Отредактировано автором: 06 Ноября, 2010 - 21:47:20)
-----Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Саныч
Отправлено: 06 Ноября, 2010 - 21:48:15
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010
Откуда: Украина, Запорожье
Помог: 62 раз(а)
Starlord пишет: ограничение на password 30 символов
ну вот что я и говорил... ищите отличия)
поставьте 32 и будет вам счастье
-----Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Саныч
Отправлено: 06 Ноября, 2010 - 22:36:58
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010
Откуда: Украина, Запорожье
Помог: 62 раз(а)
вот мой примерчик... подобавлял комментариев, чтоб вам было понятней...
PHP:
скопировать код в буфер обмена
<?PHP
require ( "core/config.php" ) ;
if ( isset ( $_POST [ 'Submit' ] ) && isset ( $_POST [ 'username' ] ) || isset ( $_POST [ 'password' ] ) ) //вход через форму {
//проверка логина
if ( ! preg_match ( '/^[a-z0-9\_\-]{3,18}$/i' , $_POST [ 'username' ] ) ) exit ( 'Логин должен быть от 3 до 18 символов и сотаять и анг. букв, цифр и символо - и _' ) ; //проверка пароля
if ( ! preg_match ( '/^[a-z0-9\_\-]{6,18}$/i' , $_POST [ 'password' ] ) ) exit ( 'Пароль должен быть от 6 до 18 символов и сотаять и анг. букв, цифр и символо - и _' ) ; //проверка на существование юзера
if ( mysql_num_rows ( $sql ) == 0
) exit ( 'Пользователь с указанным логином не зарегистрирован!' ) ; //сравнение паролей
if ( $res [ 'password' ] <> md5 ( $_POST [ 'password' ] ) ) exit ( 'Неверный пароль!' ) ; //если выбрано запомнить меня... ставим куку живущую 30 дней
if ( isset ( $_POST [ 'remember' ] ) ) setcookie ( 'user' , $res [ 'id' ] . '#' . $res [ 'password' ] , ( time ( ) + 2592000
) ) ; //запуск сессии
$_SESSION [ 'id' ] = $res [ 'id' ] ;
$_SESSION [ 'pass' ] = $res [ 'password' ] ;
}
elseif ( isset ( $_SESSION [ 'id' ] ) && isset ( $_SESSION [ 'pass' ] ) ) //вход по сессии {
//проверяем данный, если ошибка убиваем сессию
if ( mysql_num_rows ( $sql ) == 0
|| $res [ 'password' ] <> $_SESSION [ 'pass' ] ) {
unset ( $_SESSION [ 'pass' ] ) ; }
}
elseif ( isset ( $_COOKIE [ 'user' ] ) ) //вход по куке {
list ( $id , $pass ) = split ( '#' , $_COOKIE [ 'user' ] ) //проверка куки если левая, удаляем ее, если все ОК перезаписываем
{
exit ( 'Логин не найден, левая кука...' ) ; }
//запуск сессии
$_SESSION [ 'id' ] = $id ;
$_SESSION [ 'pass' ] = $pass ;
}
else //не вошли... выводим форму
{
echo '
<html>
<head>
<meta http-equiv="content-type" content="text/html"; charset="utf-8" />
<title></title>
<link rel="stylesheet" href="css/acp.css" type="text/css" />
<link rel="shortcut icon" href="favicon.ico" />
<script type="text/javascript">
var GB_ROOT_DIR = "./greybox/";
</script>
<script type="text/javascript" src="greybox/AJS.js"></script>
<script type="text/javascript" src="greybox/AJS_fx.js"></script>
<script type="text/javascript" src="greybox/gb_scripts.js"></script>
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" media="all" />
<script type=\"text/javascript\" src=\"static_files/help.js\"></script>
<link href=\"static_files/help.css\" rel=\"stylesheet\" type=\"text/css\" media=\"all\" />
</head>
<body>
<br>
<br>
<br>
<br>
<div id="frame" class="outline">
<img src="images/emblem-library.png" alt="Main" align="middle">
<h1>
Дистанционное обучение </h1>
<p>
Для того, чтобы войти в систему введите логин и пароль...</p>
<form method="POST" action="' . $_SERVER [ "PHP_SELF" ] . '">
<fieldset class="input">
<p id="form-login-username">
<label for="username">Логин:</label><td><input type="text" name="username" size="18"></td>
</p>
<p id="form-login-password">
<label for="passwword">Пароль:</label><td><input type="password" name="password" size="18" autocomplete="off"></td>
</p>
<p id="form-login-remember">
<label for="remember">Запомнить меня:</label>
<input name="remember" class="inputbox" value="yes" alt="Запомнить меня" id="remember" type="checkbox">
</p>
<p align="center"><input type="submit" value="Войти" name="Submit"></td>
</fieldset>
</form>
</div>
<br>
<a href="signup.php" class="underline" title="Регистрация в системе" rel="gb_page_center[500, 500]">Регистрация</a> | <a href="#" class="underline" title="Registration">FAQ</a> | <a href="#" class="underline" title="Registration">Разаботчики</a> | <a href="#" class="underline" title="Registration">О проекте</a>
<br>
<p class="copyright">
... <a href="http://" class="underline" target="_blank">...</a>.</p>
<p align="center">...(<span class="dashedtext">Alpha</span>)</p>
</body>
</html>' ;
}
?>
Как основа, чтобы было от чего отталкиваться...
По хорошему еще нужно сделать защиту от подборки паролей...
http://forum.php.su/topic.php?fo...1&topic=5236
Моя системка, разбирайтесь... правда я ее уже немного улучшил но и это пойдет... Единственное проверку по ип не нужно делать (77 и 94 строчки)
Разбирайтесь...(Отредактировано автором: 06 Ноября, 2010 - 22:40:57)
-----Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB