2011-08-20 13 views
11

Wszystkie samouczki mówią o rozpoczęciu sesji. Nie mówią, czy to powinno być na wszystkich stronach na stronie internetowej, czy tylko 1.Napisz początek sesji na 1 stronie lub na wszystkich stronach?

A jeśli jest to tylko 1 strona, czy musi to być strona główna? Lub strony z formularzem, który robię, który umieszcza identyfikator sesji w bazie danych? Jeśli odwiedzający nigdy nie odwiedza strony z identyfikatorem sesji, ale są na stronie, czy nadal mają identyfikator sesji?

Odpowiedz

0

Wszystko, co będzie miało dostęp do zmiennych sesji, musi rozpocząć sesję.

Więc jeśli nie masz strony php, która nie jest zależna od sesji, niż potrzebuje każda strona.

17

Trzeba umieścić to na każdej stronie, która musi uzyskać dostęp do danych sesji przed uzyskaniem dostępu (lub utworzeniem) danych sesji.

Patrz: http://php.net/manual/en/function.session-start.php

+0

Tak, więc umieszczę sesję startową na górze każdej strony na stronie, I umieściłbym ją w kod, który umieści identyfikator sesji w bazie danych mysql? Więc początek sesji powinien zostać napisany 2 razy na tych stronach? – hmwhat

+2

Nie. Potrzebujesz go tylko raz na stronę, ale przed uzyskaniem dostępu do danych. – theprogrammer

14

Tylko na gruncie kompletności możesz pisać session_start(); we wszystkich stronach, tylko w jednym lub w żadnym z nich. Pozwól mi to wyjaśnić.

Trzeba zacząć sesję w każdym scenariuszu, gdzie potrzebny jest dostęp do $_SESSION zmiennej ale zamiast umieszczać session_start(); w każdym skrypcie można utworzyć headers.php pliku i tam umieścić wszystkie swoje powtarzalnego kodu włącznie session_start();

If wszystko w twojej aplikacji wymaga dostępu do $_SESSION możesz zapomnieć o użyciu session_start(); po prostu ustawiając session.auto_start = 1 w swoim pliku php.ini. Będziesz mieć dostęp do $_SESSION bez uprzedniego napisania session_start();.

More here

0

Musisz zadeklarować session_start(); na każdej stronie, jeśli chcesz pobrać dane z $ _SESSION lub zapisać dane w $ _SESSION na tej konkretnej stronie. Jeśli nie musisz wchodzić w interakcję z $ _SESSION, nie musisz zadeklarować session_start(). @ Hmwhat

Powiązane problemy