URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5499
[ Назад ]

Исходное сообщение
"Как  работают сессии в РНР?"

Отправлено MakKlays , 24-Янв-08 18:43 
Привет, всем!

Подскажите, как работают сесии в РНР?
Есть задача: регистрирую пользователя на сайте или он просто входит (ранее зарегистрирован)...
Для зарегистрированных показываю скрытые формы, для не зарегистрированных не показываю...
Как работают сесии? Я передаю сессией id юзера (чтобы знать на других страницах кто такой и как его зовут)... А как прочитать значение из сессии? Вот и вся суть вопроса...
Как создать сесию и передать её на другую страницу, а там прочитать...
И еще есть вопрос: а когда используют куки и в каких целях (основные понятие, где используют?) возможно мне нужно куки использовать для этой задачи???

Буду очень признателен и благодарен!


Содержание

Сообщения в этом обсуждении
"Как  работают сессии в РНР?"
Отправлено rc.conf , 25-Янв-08 17:41 
Топик не читал - сесси вырываются из глобальныйх пермменх типа $_Глобаль =) он есть масив ассациативный если можно так сказать  если я не ошибаюсь $_SESSION
тоесть ест ьу тебя сэссия name123abc - тогда выдернуть её мона - $_SESSION['name123abc']


СЭсси э то теже куки по сути толко живут эти куки по времени пока не будет закнчена работа с преложением в нашем случае - пока не будет закрыто последне коно Осла - ну или любого другого браузира =)куки могут жить и год =) но они лежать ю юзверя на компе - и значит к ним можно получить доступ ... ну в общем  вё зависит от задач...


"Как  работают сессии в РНР?"
Отправлено angra , 25-Янв-08 21:46 
Моя твоя не понимать, наверное твоя не уметь говорить слова, а еще моя думать что твоя не знать ничего про сессии.


"Как  работают сессии в РНР?"
Отправлено rc.conf , 30-Янв-08 02:00 
>Моя твоя не понимать, наверное твоя не уметь говорить слова, а еще
>моя думать что твоя не знать ничего про сессии.

у какой ты.... ну я прочитал твой пост - много теории оч =) или я просто ленивый всё это расписывать... вообще 8 лет назад начал на пхп писать и как-то у мну проблем с разработокой небыло никогда =)  п.с. с Тривиальными задачами надо в книжку лезть =) как мне кажется=) а если уже там не ясно то общаться=)

П.с. если Вы знаете много больше меня - я буду очень рад если вы поможите мне в нахождении ответа на вопрос - в сосденем топике - по поводу отсылки пакетов в чужой сокет...


"Как  работают сессии в РНР?"
Отправлено angra , 30-Янв-08 07:50 
я не говорил, что знаю больше вас, определять общий багаж знаний человека на основе постов в инете как минимум нелогично. Просто ваш пост является издевательством над русским языком, плюс в нем допущен ряд фактических ошибок. Если честно не вижу смысла что-либо добавлять в  топике про сокеты, там и так все сказано.


"Как  работают сессии в РНР?"
Отправлено angra , 25-Янв-08 22:08 
Для начала стоит понять механизм сессий вообще, без привязки к языку.
1. В протоколе http понятие сессии отсутствует, это протокол без сохранения состояния, то есть в общем случае два обращения от одного клиента к серверу независимы друг от друга и второе не может знать о первом. Такое положение дел никого не устраивало и одним из решения стали cookies.
2. Куки позволяют при помощи специальных заголовков сохранить на стороне клиента какую либо информацию переданную сервером, при каждом следующем обращении к серверу клиент передает все отсносящиеся к нему куки. Куки могут иметь разное время жизни.
3. Куки ограничены объемом и небезопасны. Для преодоления этой проблемы начали использовать следующий подход: сервер создает у себя некое хранилище(запись в базе данных, файл, структура в памяти итд) и генерирует для него некий код. Этот код передается клиенту в куке. При каждом обращении от клиента по этому коду находится хранилище. Все скрипты на сервере хранят специфическую для этого клиента информацию в этом хранилище. Таким образом у клиента хранится только код хранилища, причем код генерируется так, что шансы на его угадывание(тем кто хочет выдать себя за другого клиента) близки к нулю, а перебор всех вариантов нереален в наше время. Также такой подход позволяет при желании ограничить время жизни сессии на стороне сервера за счет уничтожения хранилища. Также стоит заметить что куки не единственный способ хранить код, можно использовать скрытые поля, дополнительные параметры в урле, яваскрипт итд.
4. Сессии не являются стандартом, это метод решения определенной задачи, реализации могут очень отличаться. Язык PHP предоставляет одну из реализаций(файлы в качестве хранилища, куки и модификация урлей для хранение идентификатора) как стандартную, причем очень хорошо ее документирует. Так что открывайте мануал по вашей версии и читайте раздел описывающий сессии, там вы найдете примеры как начинать сессии, как записывать в них произвольные данные и как их оттуда читать.



"Как  работают сессии в РНР?"
Отправлено MakKlays , 29-Янв-08 15:11 
Моя твоя понимать! Спасибо, что ответил...
Привет!
Про сессии имею понятие, читал...
Не могу у себя на сайте сделать регистрацию... (регистрацию сделал, в базу добавляет из базы берет и сравнивает)... Масив $_SESSION['user'] тоже создает...
Проблема в том, что не могу прочитать значение с этого массива когда юзер переходит на другую страницу   Вот собственно и все! Не могу понять, может там Куки нужно приминять (зачем вообще куки? когда их используют?)...
Как задать время жизни сессии? А кукам?  - вот это не понимаю...
Буду рад если подскажишь и ответишь!
Еще раз спасибо, что ответил )

"Как  работают сессии в РНР?"
Отправлено angra , 29-Янв-08 15:29 
В каждом php скрипте, который работает с сессиями должно присутствовать session_start();, причем обычно в самом начале, по крайней мере до любых обращений к $_SESSION. Самому с куками работать не надо, механизм сессий в php делает это автоматически, как и все остальные действия описанные в предыдущем посте.

"Как  работают сессии в РНР?"
Отправлено MakKlays , 29-Янв-08 16:15 
Я добавляю session_start(); перед обращением $_SESSION, но мне выводит ошибку, что-то на подобии того, что что-то уже было послано итра-ля-ля причем-то там еще вспоминает session_start ... (точный текст сейчас не напишу)
Что это означает? Я так понимаю, что сессия уже была создана? (вот этого я в упор не могу понять!)



"Как  работают сессии в РНР?"
Отправлено angra , 29-Янв-08 16:19 
Ставьте это первой командой в скрипте и избавитесь от проблем. Скорее всего перед session_start у вас уже был какой-то вывод, а как следствие не могут быть посланы http заголовки. То есть например вот так нельзя:
<html>
<body>
<?php session_start();
....

А вот так можно:
<?php session_start();?>
<html>
<body>
<?php
....


"Как  работают сессии в РНР?"
Отправлено MakKlays , 29-Янв-08 16:29 
Очень даже возможно, я попробую вечером :)))
Ну аж настроение поднялось! СПАСИБО! ;)
Напишу как оно завтра...



"Как  работают сессии в РНР?"
Отправлено MakKlays , 31-Янв-08 20:33 
Привет!
Выдает следующую ошибку:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/virtual/...box_gallery.php:1) in /var/www/virtual/...box_gallery.php on line 1

Выдает эту ошибку на странице, когда перехожу со страцы где был введен пароль и логин...
Там все хорошо :) а здесь ошибка... Почему? Что она означает? Что мне делать, чтобы её убрать???

Спасите! ;)



"Как  работают сессии в РНР?"
Отправлено Fisher , 02-Фев-08 19:02 
>[оверквотинг удален]
>Выдает следующую ошибку:
>Warning: session_start(): Cannot send session cache limiter - headers already sent (output
>started at /var/www/virtual/...box_gallery.php:1) in /var/www/virtual/...box_gallery.php on line 1
>
>Выдает эту ошибку на странице, когда перехожу со страцы где был введен
>пароль и логин...
>Там все хорошо :) а здесь ошибка... Почему? Что она означает? Что
>мне делать, чтобы её убрать???
>
>Спасите! ;)

http://www.phpfaq.ru/header