[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Старт сессии
dmitriy2294
Я прочитал что для того что-бы пользователь оставался залогининым на всех страницах сайта, удобно в конфигурационный файл поместить функцию session_start() и просто напросто при помощи include() подключать данный конфигурационный файл к нужным страницам сайта. ВОПРОС: а разве не будут создаваться повторные сессии при переходах по страницам сайта?? Это вроде бы не есть хорошо?
Игорь_Vasinsky
сессия стартуется один раз и будет доступна для всех проинклуженных файлов.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
dmitriy2294
Цитата (Игорь_Vasinsky @ 14.10.2012 - 15:02)
сессия стартуется один раз и будет доступна для всех проинклуженных файлов.

Не понял тебя sad.gif подробнее можно? Конкретно в моём случае (описанном выше) мне как поступить?
П.С. немного изменил первый пост.
inpost
dmitriy2294
session_start() - это подключиться к сессии.
Если её нет - она создаётся, если она есть, то к ней подключается пользователь.
К какой именно сессии подключиться - идентификатор (ID) сессии содержится в КУКАХ. То есть когда ты пишешь session_start() идёт проверка с куками, и если там идентификатор есть, то идёт подключение, если нет идентификатора или он устарел, то создаётся новая (в случае если старая сессия умерла).

Теперь всё понятно?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
Это понятно. Просто на сайте каком-то увидел конструкцию такого вида:


if (!isset($_SESSION['id'])) {
session_start();
}

//мол она препятствует повторному запуску сессии


И ещё слышал что сессия существует 15 минут, после чего дестроится автоматически. Так вот поддерживать её хотелось бы дабы не разлогинивало юзера. (перечитал пост, и понял что вы дали ответ на этот вопрос :) а насчет этой конструкции что?)

У меня всё выглядит так, сайт разбит на отдельные файлы, header.php, index.php, sidebar.php and footer.php, в header.php записанна функция session_start(), в index.php вся эта конструкция собирается.
inpost
dmitriy2294
бред да и только smile.gif
Сессию использовать же надо не только для одной переменной, как указал ты в выше по коду.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
Цитата (inpost @ 14.10.2012 - 17:38)
dmitriy2294
бред да и только :)
Сессию использовать же надо не только для одной переменной, как указал ты в выше по коду.

ой, извиняюсь) не ту конструкцию написал, вот она, я её нашел:

<?php

// открываем сессию только если она ещё
// не была открыта ранее


if(session_id() == '')
session_start();

?>


а вот сам сайт http://on-line-teaching.com/php/sessions.htm
и всётаки, как мне поступить с моей структурой сайта, я правильно сделал что в header функцию засунул и подключаю его в каждой странице?
inpost
dmitriy2294
ну да, мы же в одном скрипте влепили session_start(), потом во втором, потом в третьем... а потом фиг его знает, сколько раз мы ещё влепим, поэтому давай на всякий случай запишем... БРЕД! Один раз в конфиге включил, на 99% сайтов этого будет вполне достаточно.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
Кажется дошло, при входе в систему в сессию записываются указанные параметры, стартовать сессию нужно там, где эти параметры будут использоваться(например на страницах информацию на которых может видеть лишь заригистрированный пользователь), но для удобства лучше засунуть в отдельный файл и подключать его самым первым, чтобы до старта сессии небыло никаких знаков, так?

Но тогда непонятен смысл конструкции выше, зачем это всё если функция session_start() сама если надо создает сессию, а если она существует - подключается..
inpost
dmitriy2294
если в коде ты 2 раза напишешь session_start() - получишь ошибку.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
Цитата (inpost @ 14.10.2012 - 18:19)
dmitriy2294
если в коде ты 2 раза напишешь session_start() - получишь ошибку.

странно но никакой ошибки не происходит
Игорь_Vasinsky
error_reporting(E_ALL) в начале поставь

сессия стартуется один раз, до всякого вывода

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.