dmitriy2294
14.10.2012 - 15:29
Я прочитал что для того что-бы пользователь оставался залогининым на всех страницах сайта, удобно в конфигурационный файл поместить функцию session_start() и просто напросто при помощи include() подключать данный конфигурационный файл к нужным страницам сайта. ВОПРОС: а разве не будут создаваться повторные сессии при переходах по страницам сайта?? Это вроде бы не есть хорошо?
Игорь_Vasinsky
14.10.2012 - 16:02
сессия стартуется один раз и будет доступна для всех проинклуженных файлов.
_____________
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
14.10.2012 - 18:15
Цитата (Игорь_Vasinsky @ 14.10.2012 - 15:02) |
сессия стартуется один раз и будет доступна для всех проинклуженных файлов. |
Не понял тебя
подробнее можно? Конкретно в моём случае (описанном выше) мне как поступить?
П.С. немного изменил первый пост.
inpost
14.10.2012 - 18:22
dmitriy2294session_start() - это подключиться к сессии.
Если её нет - она создаётся, если она есть, то к ней подключается пользователь.
К какой именно сессии подключиться - идентификатор (ID) сессии содержится в КУКАХ. То есть когда ты пишешь session_start() идёт проверка с куками, и если там идентификатор есть, то идёт подключение, если нет идентификатора или он устарел, то создаётся новая (в случае если старая сессия умерла).
Теперь всё понятно?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
14.10.2012 - 18:30
Это понятно. Просто на сайте каком-то увидел конструкцию такого вида:
if (!isset($_SESSION['id'])) {
session_start();
}
И ещё слышал что сессия существует 15 минут, после чего дестроится автоматически. Так вот поддерживать её хотелось бы дабы не разлогинивало юзера. (перечитал пост, и понял что вы дали ответ на этот вопрос :) а насчет этой конструкции что?)
У меня всё выглядит так, сайт разбит на отдельные файлы, header.
php, index.
php, sidebar.
php and footer.
php, в header.
php записанна функция session_start(), в index.
php вся эта конструкция собирается.
inpost
14.10.2012 - 18:38
dmitriy2294бред да и только
Сессию использовать же надо не только для одной переменной, как указал ты в выше по коду.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
14.10.2012 - 18:41
Цитата (inpost @ 14.10.2012 - 17:38) |
dmitriy2294 бред да и только :) Сессию использовать же надо не только для одной переменной, как указал ты в выше по коду. |
ой, извиняюсь) не ту конструкцию написал, вот она, я её нашел:
<?php
if(session_id() == '')
session_start();
?>
а вот сам сайт
http://on-line-teaching.com/php/sessions.htmи всётаки, как мне поступить с моей структурой сайта, я правильно сделал что в header функцию засунул и подключаю его в каждой странице?
inpost
14.10.2012 - 18:43
dmitriy2294ну да, мы же в одном скрипте влепили session_start(), потом во втором, потом в третьем... а потом фиг его знает, сколько раз мы ещё влепим, поэтому давай на всякий случай запишем... БРЕД! Один раз в конфиге включил, на 99% сайтов этого будет вполне достаточно.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
14.10.2012 - 19:00
Кажется дошло, при входе в систему в сессию записываются указанные параметры, стартовать сессию нужно там, где эти параметры будут использоваться(например на страницах информацию на которых может видеть лишь заригистрированный пользователь), но для удобства лучше засунуть в отдельный файл и подключать его самым первым, чтобы до старта сессии небыло никаких знаков, так?
Но тогда непонятен смысл конструкции выше, зачем это всё если функция session_start() сама если надо создает сессию, а если она существует - подключается..
inpost
14.10.2012 - 19:19
dmitriy2294если в коде ты 2 раза напишешь session_start() - получишь ошибку.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
dmitriy2294
14.10.2012 - 19:21
Цитата (inpost @ 14.10.2012 - 18:19) |
dmitriy2294 если в коде ты 2 раза напишешь session_start() - получишь ошибку. |
странно но никакой ошибки не происходит
Игорь_Vasinsky
14.10.2012 - 19:25
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
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.