PHP: переменные сеанса

Я начинаю изучать php. У меня вопрос о сеансах.

Сейчас я знаю, что session_start() создает переменную сеанса.

Что я не знаю, когда я обращаюсь к сеансу, который я создал, мне нужно снова использовать session_start()?

Если да...

Почему это? Поскольку я уже создал сеанс, и мне интересно, почему он не будет длиться весь сеанс просмотра.

Ответ 1

потому что я понимаю, что он собирается создать новый сеанс.

<Не p > Нет:

session_start() создает сеанс или возобновляет текущий на основе идентификатора сеанса, переданного через запрос GET или POST, или передается через файл cookie.

http://php.net/session_start

Каждая новая страница, которую вы посещаете, является совершенно новым контекстом для PHP. session_start позволяет восстановить предыдущий контекст/сеанс/данные.

Ответ 2

Функция session_start указывает PHP на включение отслеживания сеанса. Он не уничтожает сеанс, созданный предыдущей страницей. Вы должны вызвать session_start(), прежде чем у вас будет доступ к любым переменным в $_SESSION.

Ответ 3

Из-за руководства session_start()

session_start - Начать новую или возобновить существующую сессию

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

Также читайте здесь, но это должно помочь понять, как работают сеансы:

Когда вы работаете с приложением, вы его открываете, делаете некоторые изменения и затем вы его закрываете. Это очень похоже на сеанс. Компьютер знает кто ты. Он знает, когда вы запускаете приложение и когда закончите. Но в Интернете есть одна проблема: веб-сервер не знает кто вы и что вы делаете, потому что HTTP-адрес не поддерживает состояние.

Сессия PHP решает эту проблему, позволяя хранить пользователя информация на сервере для последующего использования (то есть имя пользователя, покупка предметы и т.д.). Однако информация о сеансе является временной и будет удаляется после того, как пользователь покинул веб-сайт. Если вам нужен постоянный вы можете хранить данные в базе данных.

Сеансы работают, создавая уникальный идентификатор (UID) для каждого посетителя и магазина переменные на основе этого UID. UID либо хранится в файле cookie, либо распространен в URL-адресе.

Ответ 4

Данные сеанса хранятся на стороне сервера, но ссылка или идентификатор сеанса хранится в cookie браузера клиента. Чтобы сервер знал ваш идентификатор сеанса, мы делаем вызов session_start() на каждой странице, которая требуется (вверху), чтобы в первую очередь было получить идентификатор от пользователя и получить данные сеанса. Это необходимо на каждой странице, когда вы хотите получить доступ к данным сеанса.

Вот также видеоурок. http://blip.tv/step4wd/php-sessions_en-5983086

Ответ 5

Нет: он не всегда будет создавать новый сеанс. Он сообщает только script, что эта страница хочет начать ИЛИ поддерживать существующий сеанс.

Сеанс - это не что иное, как СОСТОЯНИЕ НА СЕРВЕРЕ, которое вы переносите со страницы на страницу. Он НЕ доступен из клиента (браузера). Единственное, что должен сделать браузер, чтобы сохранить сеанс, это передача идентификатора (называемого по умолчанию PHPSESSID в PHP).

Этот идентификатор может храниться в файлах cookie, GET или POST, если вы его передаете на сервер с каждым запросом, который вы делаете.

Ответ 6

Ответ: да. Вы должны сделать это на каждой странице. Если вы этого не сделаете, вы получите индексную ошибку undefined.

Это будет работать, потому что мы включаем файл

Index.php

<?php
 session_start();

//file doesn't have session_start 
include "file.php";
?>

Ответ 7

Вы должны использовать session_start(), везде, где вам нужно работать с сеансом вроде создания, доступа, уничтожения.

В отличие от файлов cookie, вы не можете получить доступ или работать с сеансом, если вы не инициируете сеанс.