|
|
|
| непойму в чем проблема... все ввожу правильно реконектит на index.php и все равно не выводится что echo "Здравствуйте, ".$_SESSION['user']."!";
дамп
--
-- Структура таблицы `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
`email` varchar(20) NOT NULL default '',
`status` int(1) NOT NULL default '0',
`unique_id` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=39 ;
--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` (`id`, `login`, `password`, `email`, `status`, `unique_id`) VALUES
(38, 'qwe', 'd41d8cd98f00b204e980', 'bbbb@mail.ru', 0, 'b04ca5a28595fac77230dd0b21294e6b');
|
форма для входа
<?php
session_start();
?>
<form action="auth_user.php" method="post">
<input type="text" name="login" style=" width:60px; color:#fff;" value="<?php echo $_SESSION['user']; ?>"/>
<input type="password" name="pass" style=" width:60px; color:#fff;" value="<?php echo $_SESSION['password']; ?>" />
<b><input type="submit" value="Авторизоваться"></b></p>
</form>
<?php
// Если посетитель "вошёл" - приветствуем его
if(isset($_SESSION['user'])) echo "Здравствуйте, ".$_SESSION['user']."!";
?>
|
обработчик
<?php
require("config.php");
$login = addslashes(strip_tags($_POST["login"]));
$password = addslashes(strip_tags($_POST["pass"]));
$query = @mysql_query("SELECT password FROM users WHERE login='".$login."'");
if (!$query)
{
exit ("Ошибка выполнения запроса" .mysql_error());
}
if (@mysql_num_rows($query) > 0)
{
// Получаем пароль
$password_db = @mysql_result($query, 0);
if (md5($password) == $password_db)
{
if(session_start())
{
$_SESSION['user'] = $login;
$_SESSION['password'] = $_POST['password'];
$_SESSION["time"] = time();
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD><body>";
}
}
else
{
exit ("Ошибка идентификации: неправильный пароль");
}
}
else
{
exit ("Ошибка идентификации: посетитель не зарегистрирован");
}
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 11:12)
| | Внимание! Очередной товарищ пытается положить в сессию пароль.
Не делайте так.
Отдельного внимания стоит шедевр md5(addslashes(strip_tags(пароль)))
Такого сюрра, по-моему, здесь еще не наблюдалось. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 11:49)
| | ну никто непоможет с моей проблемой ... в итоге $_SESSION['user'] почемуто пустая
fixed
<?php
require("config.php");
$login = addslashes(strip_tags($_POST["login"]));
$password = addslashes(strip_tags($_POST["pass"]));
$query = @mysql_query("SELECT password FROM users WHERE login='".$login."'");
if (!$query)
{
exit ("Ошибка выполнения запроса" .mysql_error());
}
if (@mysql_num_rows($query) > 0)
{
// Получаем пароль
$password_db = @mysql_result($query, 0);
if (md5($password) == $password_db)
{
session_id(md5($login . rand(0,100)));
if(session_start())
{
$_SESSION['user'] = $login;
$_SESSION["time"] = time();
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=menu.php'>
</HEAD><body>";
}
}
else
{
exit ("Ошибка идентификации: неправильный пароль");
}
}
else
{
exit ("Ошибка идентификации: посетитель не зарегистрирован");
}
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 11:51)
| | >ну никто непоможет с моей проблемой ... в итоге $_SESSION['user'] почемуто пустая
А я вот считаю, что проблема в том, что Вы где-то нашли похабный код, и теперь его здесь показываете.
Выкиньте каку. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 11:53)
| | щас сам написал с нуля
в итоге невыдает никакой ошибки и рекннектит на menu.php где $_SESSION["login"] пустая
ничего понять не могу
форма для входа
<?php
if (empty($_SESSION["login"]))
{
?>
<form action="auth_user.php" method="post">
<input type="text" name="login" value=""/>
<input type="password" name="pass" value="" />
<input type="submit" value="Авторизоваться">
</form>
<?php
}
else
echo "Здравствуйте, ".$_SESSION['login']."!";
?>
|
обработчик
<?php
require("config.php");
$login = addslashes(strip_tags($_POST["login"]));
$password = addslashes(strip_tags($_POST["pass"]));
$get_user = @mysql_query("SELECT password FROM users WHERE login='$login'");
if (mysql_num_rows($get_user) != 1)
{
exit("Неверное имя пользователя или пароль!");
}
$user_pass = @mysql_result($get_user, 0);
if (md5($password) != $user_pass)
{
exit("Неверное имя пользователя или пароль!");
}
session_id(md5($login . rand(0,100)));
session_start();
$_SESSION["login"] = $login;
$_SESSION["time"] = time();
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=menu.php'>
</HEAD></HTML>";
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 12:17)
| | А как я буду регистрироваться на вашем сайте, если мой любимый пароль <h1>Рома</h1> ? | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 12:17)
| | разобрался.. надо было в menu.php в начале файла поставить session_start();
есть предложения и замечания по коду ? с удовольствием выслушаю | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 14:19)
| | Ответ неверный.
Надо было в начале файла поставить error_reporting(E_ALL | E_NOTICE);
Замечания стандартные.
Перехват кукисов отдает аутентифицированный сеанс на сторону.
А если пользователь, отключив кукисы (сессионный механизм стал работать, передавая идентификатор сессии в GET-параметре), передал/отправил кому-то ссылку на ресурс, то с этой ссылкой он отдает и сеанс. | |
|
|
|
|
|
|
|
для: Trianon
(02.08.2009 в 14:41)
| | если Вам не сложно то как должно быть ? | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 15:57)
| | Замечание по коду:
вместо этого
$password = addslashes(strip_tags($_POST["pass"]));
используй
$password = md5(md5($_POST["pass"])));
то есть двойное хэширование. И сверяй с базой. В базу тоже придется записывать двойное хэширование.
А потом сравнивай. if($password == $db_password){}
В результате. Даже если уведут пароль из базы. злоумышленник не сможет им воспользоваться. тк попросту не сможет расшифровать. | |
|
|
|
|
|
|
|
для: Ringo
(02.08.2009 в 22:35)
| | Двойное хеширование увеличивает сложность подбора пароля всего в два раза по сравнению с простым однократным. | |
|
|
|
|
|
|
|
для: t3ma
(02.08.2009 в 15:57)
| | Как должно быть что? | |
|
|
|