|
|
|
| Добрый день!
Помогите, пожалуйста, новичку.
В этом скрипте
<?php
include_once("connect.php");
if(isset($_POST['submit']))
{
$login = $_POST['login']; //Имя пользователя, введенное в форму
$password = $_POST['password']; // Пароль введенный в форму
//Запрос из базы данных по проверки существования в базе введенного пользователя
//с введенным паролем
$query = "SELECT id, login, password
FROM users
WHERE login ='{$login}' AND password='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error()); //Выполняется запрос
if (mysql_num_rows($sql) == 1){
# echo 'Авторизация прошла успешно';
$logged_user = $login;
// запоминаем имя пользователя
session_register("logged_user");
// и переправляем его на «секретную» страницу...
header("Location: secretplace.php");
exit;}
else
echo 'Неправильное имя или пароль';
}
?>
|
Запоминается переменная $logged_user, как глобальная (если я всё верно понимаю).
Далее обработка передаётся следующему скрипту:
<?php
// открываем сессию
session_start();
/*
просто зайти на эту страницу нельзя... если
имя пользователя не зарегистрировано, то
перенаправляем его на страницу index.php
для ввода логина и пароля... тут на самом деле
можно много чего сделать, например запомнить
IP пользователя, и после третьей попытки получить
доступ к файлам, его закрыть.
*/
if(!isset($logged_user)){
# Попадаю сюда
header("Location: index.php");
exit;
}
?>
<html>
<body>
# А надо сюда
Это Ваш логин: <?php echo $logged_user; ?>
</body>
</html>
|
Подскажите, в чём проблемма? Почему переменная $logged_user не инициализирована тут? | |
|
|
|
|
|
|
|
для: heeler
(03.11.2008 в 20:16)
| | session_register() не работает при отключенной директиве register_globals.
Используйте суперглобальный массив $_SESSION.
<?
session_start();
//...
$_SESSION['logged_user'] = $login;
//...
?>
|
<?
session_start();
//...
if(!isset($_SESSION['logged_user']))
//...
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(03.11.2008 в 20:28)
| | Спасибо большое!..
А я пол-дня мучился :) | |
|
|
|