|
|
|
| Помогите.
Код для авторизации пользователя.
А пароль не проверяет и выдает ошибку
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
вот код
<?php
session_start ();
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
include ("config.php");
// Формируем и выполняем SQL-запрос для посетителя с
// именем $_POST['name']
$query = "SELECT password FROM users WHERE name='".$_POST['name']."'";
$nme = mysql_query($query);
if(!$nme)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
md5($_POST['passw']);
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if ($_POST['password'] == $passw)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'>
</HEAD><body>";
}
}
else
{
echo "Ошибка идентификации: неправильный пароль";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "Ошибка идентификации: посетитель не зарегистрирован";
exit();
}
?>
</body>
</html>
|
код формы
<html>
<head>
<title></title>
</head>
<body>
<table align=center border="1">
<tr><td>
<form action="enter.php" method=post>
<align=left>Логин:<input type="text" name="name">
<align=right>Пароль:<input type="password" name="passw">
<input type="submit" value="Войти"><br>
<font size="1"><a href="register_form.php">Регистрация</a> </font>
</tr></td>
<table>
</form>
</body>
</html>
|
помогите плиз!!! | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 23:47)
| | Зачем вы 2 раза стартуете сессию?
Замените код:
<?
if ($_POST['password'] == $passw)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'>
</HEAD><body>";
}
}
?>
|
на код:
<?
if ($_POST['password'] == $passw)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
$_SESSION['user'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='10; URL=edit.php'>
</HEAD><body>";
}
?>
|
| |
|
|
|
|
|
|
|
для: JIEXA
(18.03.2006 в 10:18)
| | я переделал.
Но у меня почему то пароль все равно не сравнивает с паролем из базы | |
|
|
|
|
|
|
|
для: Spyder
(18.03.2006 в 19:07)
| | нужно хэш пароля присвоить какой-нибудь переменной.... а потом уже сравнивать :)
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
$perem = md5($_POST['passw']);
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if ($perem == $passw)
{
|
| |
|
|
|