Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка с инициализацией переменной при работе с сессией
 
 автор: heeler   (03.11.2008 в 20:16)   письмо автору
 
 

Добрый день!
Помогите, пожалуйста, новичку.
В этом скрипте
<?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 не инициализирована тут?

  Ответить  
 
 автор: Drago   (03.11.2008 в 20:28)   письмо автору
 
   для: heeler   (03.11.2008 в 20:16)
 

session_register() не работает при отключенной директиве register_globals.
Используйте суперглобальный массив $_SESSION.

<?
session_start
();
//...
$_SESSION['logged_user'] = $login;
//...
?>


<?
session_start
();
//...
if(!isset($_SESSION['logged_user']))
//...
?>

  Ответить  
 
 автор: heeler   (03.11.2008 в 20:31)   письмо автору
 
   для: Drago   (03.11.2008 в 20:28)
 

Спасибо большое!..
А я пол-дня мучился :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования