(PHP 4, PHP 5)
session_start — Inicjalizuj dane sesji
session_start() tworzy sesję lub wznawia bieżącą na podstawie aktualnego identyfikatora sesji przekazanego przy wywołaniu, poprzez metodę GET, POST lub ciasteczko.
Jeśli chcesz, aby sesja była nazwana, przed wywołaniem session_start() musisz wywołać session_name().
Ta funkcja zawsze zwraca wartość TRUE
.
Informacja:
Jeśli używasz sesji opartych o ciasteczka, to session_start() musi być wywołane przed wysłaniem jakichkolwiek danych do przeglądarki.
Przykład #1 Przykład sesji: page1.php
<?php
// page1.php
session_start();
echo 'Witaj na stronie #1';
$_SESSION['kolor'] = 'zielony';
$_SESSION['zwierze'] = 'kot';
$_SESSION['czas'] = time();
// Działa jeśli ciasteczko sesyjne zostało zaakceptowane
echo '<br /><a href="page2.php">strona 2</a>';
// Lub może przekaż ciasteczko sesyjne, jeśli to konieczne
echo '<br /><a href="page2.php?' . SID . '">strona 2</a>';
?>
Po odwiedzeniu strony page1.php, druga strona,
page2.php będzie magicznie zawierała dane sesji. W
rozdziale Sesje znajduje się więcej
informacji na temat propagowania
identyfikatora sesji, gdzie można znaleźć na przykład
wytłumaczenie co zawiera stała SID
.
Przykład #2 Przykład sesji: page2.php
<?php
// page2.php
session_start();
echo 'Witaj na stronie #2<br />';
echo $_SESSION['kolor']; // zielony
echo $_SESSION['zwierze']; // not
echo date('Y m d H:i:s', $_SESSION['time']);
// Tu można wstawić SID, podobnie jak to był na page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
W celu stworzenia nazwanej sesji, niezbędne jest wywołanie funkcji session_name() przed wywołaniem session_start().
session_start() zarejestruje wewnętrzny uchwyt obsługi wyjścia dla przepisywania URLi jeśli włączona jest opcja trans-sid. Jeśli użytkownik używa ob_gzhandler lub podobne z ob_start(), kolejność uchwytów obsługi wyjścia jest ważna dla prawidłowego wyjścia. Na przykład, użytkownik musi zarejestrować ob_gzhandler przed rozpoczęciem sesji.
Informacja: Wskazane jest użycie zlib.output_compression zamiast ob_gzhandler
Informacja:
Od PHP 4.3.3, wywołanie session_start() podczas gdy sesja już została rozpoczęta, spowoduje błąd poziomu
E_NOTICE
. Drugie rozpoczęcie sesji zostanie zignorowane.
Patrz także: $_SESSION, session.auto_start i session_id().