Спустя 18 дней, 16 часов, 12 минут, 52 секунды (18.10.2010 - 12:55) Dron19 написал(а):
вот код который я сам написал для автологина и авторизации, если поможет, ставь мне + в карму
Куки всегда по умолчанию живут 0 сек, но в функции setcookie можно задать время ее жизни.
<?
# запускаем сессии
session_start();
# подключаем MySQL
require "db.php";
// Если существуют куки, то выполняем автовход!
if(isset($_COOKIE['adminauto']))
{
$nik = $_COOKIE['adminnik'];
$password = $_COOKIE['adminpassword'];
$_SESSION['adminnik'] = $nik;
$_SESSION['adminpassword'] = crc32(crypt(base64_encode(strrev(md5($password)))));
}
// Если переменные пустые, то запрещаем вход
if(isset($_POST['auto'])) {
if(empty($nik) or empty($pass)) {exit("<script language='javascript'>alert('Вы попытались получить доступ к Чату, но замечено, что Вы не ввели какое-то из полей, пожалуйста заполните их!');</script><head><meta http-equiv='refresh' content='0; URL=admin.php'></head>");}
// Иначе если не пустые, то создаем куки
else
{
$result = mysql_query("SELECT nik,password FROM admin WHERE nik='$nik' and password='$pass'");
if(mysql_num_rows($result) > 0)
{
$auto = $_POST['auto'];
setcookie("adminauto","auto",time()+9999999);
setcookie("adminnik",$nik,time()+9999999);
setcookie("adminpassword",$pass,time()+9999999);
}
else
{
die("<script language='javascript'>alert('Вы попытались получить доступ к Чату, но те данные которые Вы ввели, не совподают с правильными! Пожалуйста введите правильные!');</script><head><meta http-equiv='refresh' content='0; URL=admin.php'></head>");
}
}
}
# если пользователь ввел данные, то проверяем их
if(isset($go))
{
# принимаем данные через POST
if (isset($_POST['nik'])) {$nik = $_POST['nik'];}
if (isset($_POST['pass'])) {$pass = $_POST['pass'];}
# проверяем нет ли пустых полей
if(empty($nik) or empty($pass))
{exit("<script language='javascript'>alert('Вы попытались получить доступ к Чату, но замечено, что Вы не ввели какое-то из полей, пожалуйста заполните их!');</script><head><meta http-equiv='refresh' content='0; URL=admin.php'></head>");}
# если их нет, то запрашиваем введенные данные из базы, если такие есть, то создаем сессии
$result = mysql_query("SELECT nik,password FROM admin WHERE nik='$nik' and password='$pass'");
if(mysql_num_rows($result) > 0)
{
# так как сессии уязвимы от взлома и просмотра введенного в них, мы пять раз зашифровываем поле с паролем
# при всем при этом при каждом заходе пароль генерируется по новому
$_SESSION['adminnik'] = $nik;
$_SESSION['adminpassword'] = crc32(crypt(base64_encode(strrev(md5($pass)))));}
else {exit("<script language='javascript'>alert('Вы попытались получить доступ к Чату, но те данные которые Вы ввели, не совподают с правильными! Пожалуйста введите правильные!');</script><head><meta http-equiv='refresh' content='0; URL=admin.php'></head>");}}
# проверяем авторизован ли пользователь, если нет выдаем окошко авторизации
if( !isset($_SESSION['adminnik']) or !isset($_SESSION['adminpassword']) ) {
echo "<br><br><br><br><br><br><br>
<table bgcolor='#EAF3FF' width='300px' align='center' style='border:1px solid #000000; padding:10px;'>
<tr><td><strong>Вход</strong></td></tr><br>
<form method='post'><tr bgcolor='#F9F8FD'><td>
<div style='font-size:11px; font-family:Verdana; color:#424242;'>Ваш ник:</div></td><td>
<input style='border:1px solid #B3B9C3; font-size:12px;' type='text' name='nik'></td></tr>
<tr bgcolor='#F9F8FD'><td>
<div style='font-size:11px; font-family:Verdana; color:#424242;'>Ваш пароль:</div></td><td>
<input style='border:1px solid #B3B9C3; font-size:12px;' type='password' name='pass'></td></tr><tr><td>
<input type='checkbox' name='auto' cheked> Автовход<br>
<input style='border:1px solid #000000; color:#3A4F6C; font-weight:700; padding:0px; background-color:#F0F5FA; margin-top:5px;' type='submit' name='go' value='Войти'></form>
</td>
</tr>
</table>
<br><table bgcolor='#EAF3FF' width='500px' align='center' style='border:1px solid #000000; padding:10px;'><tr align='center'><td><strong style='font-size:14px;'>Забыли пароль?</strong></td></tr><form method='post' action='newpass.php'><tr align='center'><td bgcolor='#F9F8FD' style='padding-bottom:7px;'><strong style='font-size:11px; font-family:Verdana;'>Введите Ваш email: </strong><input type='text' name='email' style='border:1px solid #B3B9C3; font-size:11px; font-family:Verdana; padding:1px; margin-top:5px;'> <input type='submit' style='border:1px solid #000000; color:#3A4F6C; font-weight:700; padding:0px; background-color:#F0F5FA; margin-top:5px;' name='newpass' value='Получить пароль!'></form></td></tr><tr><td align='center' style='font-size:11px; font-family:Verdana; color:#FF0000;'>* Вам на email будет выслан новый пароль!</td></tr></table>
";
exit();
}
?>
Куки всегда по умолчанию живут 0 сек, но в функции setcookie можно задать время ее жизни.
Спустя 2 часа, 7 минут, 46 секунд (18.10.2010 - 15:03) aH6y написал(а):
Dron19
как можно добавлять в сессию ник и пароль еще не проверив есть ли такая пара в базе?
и зачем таблицу в одну строку писать?
как можно добавлять в сессию ник и пароль еще не проверив есть ли такая пара в базе?
и зачем таблицу в одну строку писать?
Спустя 1 час, 4 минуты, 57 секунд (18.10.2010 - 16:08) arvitaly написал(а):
Dron19,
Вы когда нибудь подбирали md5?
Вы когда нибудь подбирали md5?
Спустя 4 часа, 13 минут, 21 секунда (18.10.2010 - 20:21) ИНСИ написал(а):
Цитата |
$_SESSION['adminpassword'] = crc32(crypt(base64_encode(strrev(md5($password))))); |
очень ЖЕСТКО
Спустя 1 минута, 50 секунд (18.10.2010 - 20:23) twin написал(а):
Dron19
Цитата |
вот код который я сам написал для автологина и авторизации, если поможет, ставь мне + в карму |
За такой код не плюс в карму, а ремнем по попе.
Спустя 17 минут, 3 секунды (18.10.2010 - 20:40) kirik написал(а):
Цитата (welbox2 @ 18.10.2010 - 12:21) | ||
очень ЖЕСТКО |
Невероятно жестко!
Еще и SQL-инъекциями попахивает..
Спустя 2 часа, 33 минуты, 43 секунды (18.10.2010 - 23:14) aH6y написал(а):
Dron19
никогда в сессию не записывай пароль.
никогда в сессию не записывай пароль.