session start()
session_start
(PHP 4, PHP 5, PHP 7, PHP 8)
session_start — Starta en ny session eller återuppta en befintlig session
Beskrivning
session_start(array $options = []): bool
session_start() skapar en session eller återupptar den aktuella baserat på ett sessions-ID som skickas via en GET- eller POST-begäran, eller som skickas via en cookie.
När session_start() anropas eller när en session startar automatiskt, kommer PHP att anropa de öppna och läsa-session spara-hanterare. Dessa kan antingen vara en inbyggd spara-hanterare som tillhandahålls som standard eller av PHP-tillägg (såsom SQLite eller Memcached); eller så kan det vara en anpassad hanterare som definieras av session_set_save_handler(). Läsåterkopplingen kommer att hämta eventuella befintliga sessionsdata (lagrade i ett speciellt serialiserat format) och kommer att unserialiseras och användas för att automatiskt fylla $_SESSION-superglobalen när läsåterkopplingen returnerar de sparade sessionsdata tillbaka till PHP:s sessionhantering.
För att använda en namngiven session, anropa session_name() innan du anropar session_start().
När session.use_trans_sid är aktiverad, kommer session_start()-funktionen att registrera en intern utdataledare för URL-omskrivning.
Om en användare använder ob_gzhandler eller liknande med ob_start(), är funktionsordningen viktig för korrekt utdata. Till exempel måste ob_gzhandler registreras innan sessionen startas.
Parametrar
- options:
Om det tillhandahålls är detta en associativ array med alternativ som kommer att åsidosätta de för närvarande inställda sessionskonfigurationsdirektiven. Nycklarna ska inte inkludera session.-prefixet.
Förutom den vanliga uppsättningen av konfigurationsdirektiv kan ett read_and_close-alternativ också tillhandahållas. Om det är inställt på true, kommer detta att resultera i att sessionen stängs omedelbart efter att ha lästs, vilket undviker onödig låsning om sessionsdata inte kommer att ändras.
Returvärden
Denna funktion returnerar true om en session startades framgångsrikt, annars false.
Ändringslogg
- Version 7.1.0
- session_start() returnerar nu false och initierar inte $_SESSION när det misslyckades med att starta sessionen.
Exempel
Ett grundläggande sessionsexempel
Exempel #1 page1.php
<?php // page1.php session_start(); echo 'Välkommen till sida #1'; $_SESSION['favcolor'] = 'grön'; $_SESSION['animal'] = 'katt'; $_SESSION['time'] = time(); // Fungerar om sessionskakan accepterades echo '<br /><a href="page2.php">sida 2</a>'; // Eller kanske skicka med sessions-ID om det behövs echo '<br /><a href="page2.php?' . SID . '">sida 2</a>'; ?>
Efter att ha tittat på page1.php, kommer den andra sidan page2.php magiskt att innehålla sessionsdata. Läs sessionsreferensen för information om att överföra sessions-ID:n eftersom den till exempel förklarar vad konstanten SID handlar om.
Exempel #2 page2.php
<?php // page2.php session_start(); echo 'Välkommen till sida #2<br />'; echo $_SESSION['favcolor']; // grön echo $_SESSION['animal']; // katt echo date('Y m d H:i:s', $_SESSION['time']); // Du kanske vill använda SID här, som vi gjorde i page1.php echo '<br /><a href="page1.php">sida 1</a>'; ?>
Tillhandahålla alternativ till session_start()
Exempel #3 Åsidosätta kakan livslängd
<?php // Detta skickar en ihållande kaka som varar i en dag. session_start([ 'cookie_lifetime' => 86400, ]); ?>
Exempel #4 Läsa sessionen och stänga den
<?php // Om vi vet att vi inte behöver ändra något i // sessionen, kan vi bara läsa och stänga direkt för att undvika // att låsa sessionsfilen och blockera andra sidor. session_start([ 'cookie_lifetime' => 86400, 'read_and_close' => true, ]); ?>
Noteringar
Notera: För att använda kakbaserade sessioner måste session_start() anropas innan något skickas till webbläsaren.
Notera: Användning av zlib.output_compression rekommenderas istället för ob_gzhandler().
Notera: Denna funktion skickar ut flera HTTP-rubriker beroende på konfigurationen. Se session_cache_limiter() för att anpassa dessa rubriker.
Se även
- $_SESSION
- session.auto_start konfigurationsdirektiv
- session_id() - Hämta och/eller sätt det aktuella sessions-ID
Sidslut
Orginalhemsidan på Engelska :
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.