- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
<?
if(!$GLOBAL)
{
header('Location: http://'.$_SERVER['SERVER_NAME'].'/');
}
session_start();
require_once($_SERVER['DOCUMENT_ROOT']."/global/constants.php");
require_once($_SERVER['DOCUMENT_ROOT']."/global/functions.php");
connect_SQL();
//$ref = $_SERVER['HTTP_REFERER'];
$ref = "http://".$_SERVER['SERVER_NAME'];
//var_dump($_POST);
if(isset($_POST['auth_go']))
{
$login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
$query = "SELECT `salt`
FROM `users`
WHERE `login`='{$login}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) == 1)
{
$row = mysql_fetch_assoc($sql);
// итак, вот она соль, соответствующая этому логину:
$salt = $row['salt'];
// теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
$password = md5(md5($_POST['password']) . $salt);
// и пошло поехало...
// делаем запрос к БД
// и ищем юзера с таким логином и паролем
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
// если такой пользователь нашелся
if (mysql_num_rows($sql) == 1)
{
// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
$row = mysql_fetch_assoc($sql);
$_SESSION['user_id'] = $row['id'];
// если пользователь решил "запомнить себя"
// то ставим ему в куку логин с хешем пароля
$time = 86400; // ставим куку на 24 часа
if (isset($_POST['remember']))
{
setcookie('login', $login, time()+$time, "/");
setcookie('password', $password, time()+$time, "/");
}
// и перекидываем его на закрытую страницу
if(!empty($ref))
{
if( (strstr($ref,"error"))||(strstr($ref,"register"))||(strstr($ref,"forgetyourpassword")))
{
// //header('Location: http://'.$_SERVER['SERVER_NAME'].'/');
}
else
{
// // header('Location: '.$ref.'/');
}
}
else
{
// // header('Location: http://'.$_SERVER['SERVER_NAME'].'/');
}
//echo "Заебиок АВТОРИЗОВАН!<br>";
//exit;
// не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
}
else
{
//die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
header('Location: http://'.$_SERVER['SERVER_NAME'].'/error/?no=2');
// // header('Location: http://'.$_SERVER['SERVER_NAME'].'/error');
}
}
else
{
//die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
header('Location: http://'.$_SERVER['SERVER_NAME'].'/error/?no=3');
// // //header('Location: http://'.$_SERVER['SERVER_NAME'].'/error');
}
//echo "//--проверяем валидность...<br>";
//echo "//--и отправляем на куда то, с объявлением......<br>";
//echo "переадресация<br>";
//echo "<a href=http://".DSITE.">".DSITE."</a>";
А почему бы не тупо
header('Location: /');
Гонево это, 1 баг != броузеры
Оригинальное сообщение об ошибке было 🙂
>// и пошло поехало...
>//echo "Заебиок АВТОРИЗОВАН!<br>";
Мой хуй длиннее осени в России.
Секуриту, аднака.
По комментам видно, что автор буквально выстрадал этот кусок кода.