Работа сессии при авторизации для register_globals=off без записи сессиив БД или файл

Sirius

PHP+MySQL=LOVE
Работа сессии при авторизации для register_globals=off без записи сессиив БД или файл

Работа сессии при авторизации для register_globals=off без записи сессии в БД или файл...


Это возможно?

Если кто-то так делает, пусть поделится как это возможно?
 

Larson

Новичок
1. При авторизации юзера проверяем логин и пассворд, если правильные то кладем их в $_SESSION['login'] и $_SESSSION['pass'].
2. На каждой странице с авторизованным доступом проверяем $_SESSION['login'] и $_SESSION['pass'].
 

RomikChef

Guest
Ларсон, а куда, по-твоему, их кладет $_SESSIN? ;-)

Сириус, твой вопрос напоминает такой
"А можно доехать на машине, но чтобы машина была без колес?"

Запись сессионной информации в файл - совершенно неотъемлемый сеханизм сессий.
 

Sirius

PHP+MySQL=LOVE
RomikChef - естественно, но есть запись в каталог tmp по умолчанию.... Туда пишутся сессии...

Можно работать с сессиями без каких либо специальных сделанных программистом записей в файл номера сессии при register_globals=on.

А когда офф, то может поможет global? Но не помогает!
 

SeazoN

Guest
Ворос - кашмар, я чуть голову не сломал :-(

Обращайся напрямую и всё

PHP:
$var = isset($_SESSION["var"])?$_SESSION["var"]:"";
 

Sirius

PHP+MySQL=LOVE
2SeazoN

Так не переходит же с одной страницы на другую!!!!!!!!
 

SeazoN

Guest
Скрипт в студию (оба)
Тот где стартуем и то где подхватываем.
Всё ненадо, только "сессионную часть"
 

Sirius

PHP+MySQL=LOVE
admin.php:
Код:
   if (($login == $admlogin)&&($pass == $admpass))
   {
      unset($s); 
      session_start(); 
      session_register("s");
      if (!isset($s['start'])) {
          $s['start']=time();
      }
   Header("Location: admin/index.php?page=admin");
}
else
{
echo "Incorrect pass or login";
}
...
admin/index.php:
Код:
<?
   unset($s); 
   session_start(); 
   session_register("s"); 
   if (!isset($s['start'])) 
   {
    echo "session error if register_globals=off";
    }

?>
Это мои варианты которые пашут только при register_globals=on!
 

SeazoN

Guest
PHP:
      session_start(); 
      if (!isset($s['start'])) {
		  $s['start'] = time();
          $_SESSION['s']= $s;
      }
PHP:
   session_start(); 
   if (!isset($_SESSION["s"])) 
   {
    echo "session error if register_globals=off";
    }
 

sokov

Guest
2 Сириус:

просто напихай переменные, которые ты собираешься передавать, как куки - потом они у тебя все соберутся в массиве $_COOKIE
 

Sirius

PHP+MySQL=LOVE
SeazoN - работает:)


Странно, не ожидал такого лёгкого ответа, хммм... СПАСИБО!

Насколько я помню будет работать в php с версии начиная с 4.1.0???
 

SeazoN

Guest
Ну замени
$_SESSION на $HTTP_SESSION_VARS
и будет работать на всех 4.*

Но надо будет объявлять глобальными(если надо). Мой ответ насчёт совместимости - отнесите свой хлам на свалку(всё что <4.1.0)
 

RomikChef

Guest
Сириус, куки РНР поддерживает с версии 2.0
Нолько, если пишешь в куки, то тогда убери сессии. За ненадобностью.

При чем тут какие-то файлы ты приплел - я так и не понял.
Зачем программисту что-то создавать? Ему что - больше заняться нечем?

Все, что тебе надо было сделать, это в
admin/index.php поменять ОДНУ переменную
PHP:
<?
   unset($s); 
   session_start(); 
   if (!isset($_SESSION['s'])) 
   {
    echo "session error if register_globals=off";
    }
?>
И ВСЕ!
И чего ты тут развел какие-то файлы - непонятно.
если у тебя проблемы с регистер_глобалс - просто сделай в начале скрипта
extract(тот массив, который тебе надо раскидать по переменным)
И ВСЕ.
И никаких проблем.
 

Sirius

PHP+MySQL=LOVE
Да - спасибо RomikChef... Я уже сделал!
Просто в инете все статьи написаны в основном для register_globals=on, и даже для safe_mode=off!
А скрипты нужно всегда писать учитывая самые худшие установки php!
 
Сверху