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

Форум PHP

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

 

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

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

тема: почему закрывается сессия?
 
 автор: Junkie25   (28.12.2008 в 07:48)   письмо автору
 
 

Здравствуйте! Написал накую функцию:

 
function autoreze()
  {
    global $u_agent;
    
    if(isset($_GET['PHPSESSID']) || isset($_POST['PHPSESSID']))
      {
        
        session_start();
        $ses_agent   = $_SESSION['u_agent'];
        $autorez     = $_SESSION['autorez'];
      
      if($u_agent === $ses_agent and $autorez === 1)
        {
          return true;
        }
        else
          {
            return false;
          }
      }
      else
          {
            return false;
          }
  }


авторизовываюсь, проверяю, выводит " true ",
захожу туда же с другого браузера, как положено пишет " flse ",
но после этого и авторизованный браузер выкидывает.
Почему так? И как это можно исправить?

  Ответить  
 
 автор: Valick   (28.12.2008 в 09:50)   письмо автору
 
   для: Junkie25   (28.12.2008 в 07:48)
 

Попробуйте вместо
if(isset($_GET['PHPSESSID']) || isset($_POST['PHPSESSID']))

вот так
if(isset($_REQUEST['PHPSESSID']))


Почему так? И как это можно исправить?
Слишком мало информации. С чего вы взяли что проблема именно в функции?
И вообще если вы с определённым идентификатором сеанса заходите из под другого браузера, то сессия в целях безопасности должна закрываться.

  Ответить  
 
 автор: Junkie25   (28.12.2008 в 10:49)   письмо автору
 
   для: Valick   (28.12.2008 в 09:50)
 

И вообще если вы с определённым идентификатором сеанса заходите из под другого браузера, то сессия в целях безопасности должна закрываться.

Должна сама (предусмотрено php) или это нжно делать мне?
Если php такие сессии закрывает, тогда понятно - почему.
Но интересно: можно ли с этим бороться?
2) Слишком мало информации. С чего вы взяли что проблема именно в функции?
просто я только пишу скрипт, а с сессиями еще толком не разобрался, поэтому, как только
написал функцию, сразу решил проверить, вот так:

  if(autoreze())
    {
      $autoreze = 1;
    }
    else
      {
        $autoreze = 0;
      }
if ($autoreze === 1)
  {
    echo '<br/><br/>Вы авторизованы<br/>
  }
  else
{
echo '<br/><br/>Вы не авторизованы<br/>
}

  Ответить  
 
 автор: Valick   (28.12.2008 в 12:25)   письмо автору
 
   для: Junkie25   (28.12.2008 в 10:49)
 

"масляное масло"))
у вас много лишнего...
достаточно

if (autoreze()) 
  { 
    echo '<br/><br/>Вы авторизованы<br/> 
  } 
  else 

echo '<br/><br/>Вы не авторизованы<br/> 

Сессии должны закрывать вы сами, при любом подозрении что сессия украдена.
Самого РНР кроме идентификатора сессии ничего не волнует.

  Ответить  
 
 автор: Trianon   (28.12.2008 в 12:30)   письмо автору
 
   для: Valick   (28.12.2008 в 09:50)
 

>И вообще если вы с определённым идентификатором сеанса заходите из под другого браузера, то сессия в целях безопасности должна закрываться.

почему, кем, и как?

  Ответить  
 
 автор: Valick   (28.12.2008 в 12:47)   письмо автору
 
   для: Trianon   (28.12.2008 в 12:30)
 

почему - в целях безопасности.
кем - программистом.
как - не мне вам рассказывать)

  Ответить  
 
 автор: Junkie25   (28.12.2008 в 13:09)   письмо автору
 
   для: Valick   (28.12.2008 в 12:47)
 

Переменные создал, чтоб не гонять функцию по несколько раз, в скрипте, на каждой странице
будут выводиться данные только для авторизованых, в разных местах.

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

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