Всем доброго времени суток…. Скачал с этого сайта пример регистрации и авторизации,при тестировании login.php выдаёт ошибку. ну ошибки у меня не показывает, не могу всё ещё правильно настроить php.ini в ubuntu… перечитал весь код, вроде бы всё верно…. НО….короче вот код:
<?php
session_start();
include ('mysql.php');
if (isset($_GET['logout']))
{
if (isset($_SESSION['user_id']))
unset($_SESSION['user_id']);
setcookie('login', '', 0, "/");
setcookie('password', '', 0, "/");
// и переносим его на главную
header('Location: index.php');
exit;
}
if (isset($_SESSION['user_id']))
{
// юзер уже залогинен, перекидываем его отсюда на закрытую страницу
header('Location: closed.php');
exit;
}
if (!empty($_POST))
{
$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, "/");
}
// и перекидываем его на закрытую страницу
header('Location: closed.php');
exit;
// не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
}
else
{
die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
}
}
else
{
die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
}
}
print '
<form action="login.php" method="post">
<table>
<tr>
<td>Логин:</td>
<td><input type="text" name="login" /></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>Запомнить:</td>
<td><input type="checkbox" name="remember" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Авторизоваться" /></td>
</tr>
</table>
</form>
';
?>
Помогите пожалуйста! Заранее спасибо:)