Podręcznik PHP
Poprzedni |  | Następny

# session_start

(PHP 4, PHP 5)

session_start -- Inicjalizuj dane sesji

## Opis

bool session_start ( void )

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`.

> Notatka: 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.

> Notatka: Wskazane jest użycie zlib.output_compression zamiast ob_gzhandler

> Notatka: 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().

Poprzedni | Spis treści | Następny
session_set_save_handler | Początek rozdziału | session_unregister