Проблема с сессиями

Тема в разделе "PHP", создана пользователем yeaahhh, 22 авг 2011.

Модераторы: latteo
  1. yeaahhh

    yeaahhh

    Регистр.:
    8 май 2008
    Сообщения:
    278
    Симпатии:
    11
    Ребят, подскажите, плз, в чём дело?
    В Firefox появляется следующая ошибка:
    HTML:
    
    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:
    if (isset($_COOKIE['auth_key']) && !isset($_SESSION['login'])) {

    $auth_key safe_var($_COOKIE['auth_key']);

    $auth_key_query mysql_query("SELECT id, login, password FROM users WHERE auth_key = '" $auth_key "' LIMIT 1");
    if(
    $auth_key_query == false)
    {
    setcookie("auth_key"""time() - 3600);
    } else {
    $kuki mysql_fetch_array($auth_key_query);
            
    session_regenerate_id(true);
              
    $_SESSION['password'] = $kuki['password']; 
              
    $_SESSION['login'] = $kuki['login']; 
              
    $_SESSION['id'] = $kuki['id'];

    }

    }
    Если убрать

    PHP:
              $_SESSION['password'] = $kuki['password']; 
              
    $_SESSION['login'] = $kuki['login']; 
              
    $_SESSION['id'] = $kuki['id'];
    То всё становится ок.. Но мне нужен этот код..

    P.S. Данный код имеется на двух страницах (кстати именно с первой идёт переход на вторую).
    На первой всё ок..
    На второй такая ошибка.

    В чём ошибка? Заранее спасибо.
     
  2. usja

    usja Создатель

    Регистр.:
    17 авг 2011
    Сообщения:
    34
    Симпатии:
    5
    Какая версия php?

    попробуйте в php.ini
    Код:
    session.bug_compat_42 = 1 (или 0, точно не помню)
    session.bug_compat_warn = 0
    
    или:
    переименуйте переменные сессии, чтобы не совпадали с правой частью:
    PHP:
    $_SESSION['pwd'] = $kuki['password'];  
    Если переменные такие же нужны, то вводите другую переменную для присвоения значения сессии
     
  3. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Выключи register_globals.
    Кхы.. Это здесь причем? Переменные различаются? Значит всё ок.
    Это выключит сообщение об ошибки, но саму ошибку не исправит.
     
  4. usja

    usja Создатель

    Регистр.:
    17 авг 2011
    Сообщения:
    34
    Симпатии:
    5
  5. chibit

    chibit Life sucks.

    Регистр.:
    4 дек 2007
    Сообщения:
    420
    Симпатии:
    285
    Ну я и говорю - нужно выключить register_globals к еб*ням.