PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (91): В начало « ... 75 76 77 78 [79] 80 81 82 83 ... » В конец
Найдено сообщений: 1361
Саныч
Отправлено: 06 Ноября, 2010 - 22:36:58 • Тема: Помогите разобраться с кодом • Форум: Напишите за меня, пожалуйста
Ответов: 15 Просмотров: 186
вот мой примерчик... подобавлял комментариев, чтоб вам было понятней...
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 - 21:46:29 • Тема: Помогите разобраться с кодом • Форум: Напишите за меня, пожалуйста
Ответов: 15 Просмотров: 186
А что с куками? Устанавливаете, затем по необходимости берете значение, проверяете...
Пример этой системки примерно такой
PHP:
скопировать код в буфер обмена
if ( вход через форму )
{
проверяем логин, пароль, сравниваем с базой.
если все ОК запускаем сессию.
если пользователь выбрал "Запомнить меня" устанавливаем куку, если не выбрал, а кука есть удаляем ее...
}
elseif ( есть сессия )
{
проверяем значения, если ошибка убиваем сессию
}
elseif ( есть кука )
{
проверяем значение, если ОК запуск сессию, если ошибка удаляем куку
}
else
{
... если войти не удалось...
}
Саныч
Отправлено: 05 Ноября, 2010 - 15:42:49 • Тема: хелп!!!! • Форум: Программирование на PHP
Ответов: 13 Просмотров: 734
misternik , вы сами хоть поняли что вам надо? Судя по вашим вопросам вы вообще не разбираетесь в том, куда лезете...
Страниц (91): В начало « ... 75 76 77 78 [79] 80 81 82 83 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB