<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.session.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'function.session-start.php',
    1 => 'session_start',
    2 => 'Erzeugt eine neue Session oder setzt eine vorhandene fort',
  ),
  'up' => 
  array (
    0 => 'ref.session.php',
    1 => 'Session-Funktionen',
  ),
  'prev' => 
  array (
    0 => 'function.session-set-save-handler.php',
    1 => 'session_set_save_handler',
  ),
  'next' => 
  array (
    0 => 'function.session-status.php',
    1 => 'session_status',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/session/functions/session-start.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.session-start" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">session_start</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">session_start</span> &mdash; <span class="dc-title">Erzeugt eine neue Session oder setzt eine vorhandene fort</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.session-start-description">
  <h3 class="title">Beschreibung</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>session_start</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>session_start()</strong></span> erzeugt eine Session oder nimmt die
   aktuelle wieder auf, die auf der Session-Kennung basiert, die mit einer
   GET- oder POST-Anfrage oder mit einem Cookie übermittelt wurde.
  </p>
  <p class="para">
   Wenn <span class="function"><strong>session_start()</strong></span> aufgerufen wird oder eine Session
   automatisch startet, ruft PHP die Öffnen- und Lesen-Routinen der
   Session-Speicherroutine auf. Dies ist entweder eine eingebaute
   Speicherroutine, die standardmäßig mitgeliefert wird oder von
   Erweiterungen (wie z. B. SQLite oder Memcached) zur Verfügung gestellt
   wird, oder eine eigene Routine, die mittels
   <span class="function"><a href="function.session-set-save-handler.php" class="function">session_set_save_handler()</a></span> definiert wurde. Die
   Lesen-Routine ruft alle vorhandenen Session-Daten (abgespeichert in einem
   speziellen serialisierten Format) ab und deserialisiert sie, um damit die
   $_SESSION-Superglobale zu füllen.
  </p>
  <p class="para">
   Um eine benannte Session zu verwenden, rufen Sie
   <span class="function"><a href="function.session-name.php" class="function">session_name()</a></span> auf, bevor Sie
   <span class="function"><strong>session_start()</strong></span> aufrufen.
  </p>
  <p class="para">
   Wenn <a href="session.configuration.php#ini.session.use-trans-sid" class="link">session.use_trans_sid</a>
   aktiviert ist, registriert die Funktion <span class="function"><strong>session_start()</strong></span>
   eine interne Ausgaberoutine für das Umschreiben von URLs.
  </p>
  <p class="para">
   Verwendet ein Benutzer <code class="literal">ob_gzhandler</code> oder ähnliches mit
   <span class="function"><a href="function.ob-start.php" class="function">ob_start()</a></span>, dann ist die Reihenfolge der Funktionen
   wichtig für eine korrekte Ausgabe. Zum Beispiel muss
   <code class="literal">ob_gzhandler</code> vor Beginn der Session registriert werden.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.session-start-parameters">
  <h3 class="title">Parameter-Liste</h3>
  <dl>
   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <p class="para">
      Als optionaler Parameter kann ein assoziatives Array mit Optionen
      angegeben werden, das die aktuell gesetzten
      <a href="session.configuration.php" class="link">Session-Konfigurationsanweisungen</a>
      überschreibt. Die Schlüssel sollten nicht das
      <code class="literal">session.</code>-Präfix beinhalten.
     </p>
     <p class="para">
      Zusätzlich zu den normalen Konfigurationsanweisungen kann auch eine
      <code class="literal">read_and_close</code>-Option angegeben werden. Falls auf
      <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> gesetzt, führt sie dazu, dass die Session unmittelbar nach dem
      Auslesen geschlossen wird. Dadurch lässt sich eine unnötige Sperre
      vermeiden, wenn die Session-Daten nicht verändert werden.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.session-start-returnvalues">
  <h3 class="title">Rückgabewerte</h3>
  <p class="para">
   Falls die Session erfolgreich gestartet wurde, gibt diese Funktion <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
   zurück, andernfalls <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.session-start-changelog">
  <h3 class="title">Changelog</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Version</th>
       <th>Beschreibung</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>7.1.0</td>
       <td>
        <span class="function"><strong>session_start()</strong></span> gibt nun <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurück und
        initialisiert <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> nicht mehr, wenn das
        Starten der Session fehlschlug.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.session-start-examples">
  <h3 class="title">Beispiele</h3>
  <div class="refsect2 unknown-34" id="refsect2-function.session-start-unknown-34">
   <h4 class="title">Ein grundlegendes Session-Beispiel</h4>
   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Beispiel #1 <var class="filename">seite1.php</var></strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// seite1.php<br /><br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br /><br />echo </span><span style="color: #DD0000">'Willkommen auf Seite #1'</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'farbe'</span><span style="color: #007700">] = </span><span style="color: #DD0000">'grün'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'tier'</span><span style="color: #007700">] = </span><span style="color: #DD0000">'Spinne'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'zeit'</span><span style="color: #007700">] = </span><span style="color: #0000BB">time</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Funktioniert, falls das Session-Cookie akzeptiert wurde<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">'&lt;br /&gt;&lt;a href="seite2.php"&gt;Seite 2&lt;/a&gt;'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Oder die Session-ID mit übergeben, für den Fall, dass sie benötigt wird<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">'&lt;br /&gt;&lt;a href="seite2.php?' </span><span style="color: #007700">. </span><span style="color: #0000BB">SID </span><span style="color: #007700">. </span><span style="color: #DD0000">'"&gt;Seite 2&lt;/a&gt;'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    Nach dem Aufruf von <var class="filename">seite1.php</var> enthält automatisch
    auch die zweite Seite, <var class="filename">seite2.php</var>, die Session-Daten.
    Lesen Sie <a href="ref.session.php" class="link">Session-Funktionen</a>, um
    weitere Informationen über die
    <a href="session.idpassing.php" class="link">Übermittlung der Session-ID</a> zu
    erhalten. Dort wird zum Beispiel erklärt, worum es sich bei der Konstanten
    <strong><code><a href="session.constants.php#constant.sid">SID</a></code></strong> handelt.
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>Beispiel #2 <var class="filename">seite2.php</var></strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// seite2.php<br /><br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">();<br /><br />echo </span><span style="color: #DD0000">'Willkommen auf Seite #2&lt;br /&gt;'</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'farbe'</span><span style="color: #007700">];  </span><span style="color: #FF8000">// grün<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'tier'</span><span style="color: #007700">];   </span><span style="color: #FF8000">// Spinne<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">'d.m.Y H:i:s'</span><span style="color: #007700">, </span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">'zeit'</span><span style="color: #007700">]);<br /><br /></span><span style="color: #FF8000">// Sie können auch hier, genauso wie bei seite1.php, SID verwenden<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">'&lt;br /&gt;&lt;a href="seite1.php"&gt;Seite 1&lt;/a&gt;'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </div>

  <div class="refsect2 unknown-37" id="refsect2-function.session-start-unknown-37">
   <h4 class="title">Optionen an <span class="function"><strong>session_start()</strong></span> übergeben</h4>
   <div class="example" id="example-3">
    <p><strong>Beispiel #3 Die Cookie-Gültigkeitsdauer übersteuern</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Ein persistentes Cookie senden, das einen Tag lang gültig ist.<br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">([<br />    </span><span style="color: #DD0000">'cookie_lifetime' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">86400</span><span style="color: #007700">,<br />]);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
   <div class="example" id="example-4">
    <p><strong>Beispiel #4 Die Session lesen und schließen</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Sofern wir wissen, dass wir keine Daten zu verändern brauchen,<br />// können wir die Session unmittelbar nach dem Auslesen automatisch<br />// schließen, um eine Sperre für die Session zu vermeiden und<br />// andere Seiten während der Zeit nicht am Zugriff zu hindern.<br /></span><span style="color: #0000BB">session_start</span><span style="color: #007700">([<br />    </span><span style="color: #DD0000">'cookie_lifetime' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">86400</span><span style="color: #007700">,<br />    </span><span style="color: #DD0000">'read_and_close'  </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">true</span><span style="color: #007700">,<br />]);</span></span></code></div>
    </div>

   </div>
  </div>

 </div>


 <div class="refsect1 notes" id="refsect1-function.session-start-notes">
  <h3 class="title">Anmerkungen</h3>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Um Cookie-basierte Sessions zu verwenden muss
    <span class="function"><strong>session_start()</strong></span> aufgerufen werden, bevor irgend etwas
    an den Browser geschickt wird.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    Die Verwendung von
    <a href="zlib.configuration.php#ini.zlib.output-compression" class="link">zlib.output_compression</a>
    ist <span class="function"><a href="function.ob-gzhandler.php" class="function">ob_gzhandler()</a></span> vorzuziehen.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
   <p class="para">
    In Abhängigkeit von der Konfiguration sendet diese Funktion verschiedene
    HTTP-Header. Siehe <span class="function"><a href="function.session-cache-limiter.php" class="function">session_cache_limiter()</a></span>, um diese
    Header anzupassen.
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.session-start-seealso">
  <h3 class="title">Siehe auch</h3>
  <p class="para">
   <ul class="simplelist">
    <li><var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var></li>
    <li>
     Die Konfigurationsanweisung
     <a href="session.configuration.php#ini.session.auto-start" class="link">session.auto_start</a>
    </li>
    <li><span class="function"><a href="function.session-id.php" class="function" rel="rdfs-seeAlso">session_id()</a> - Liefert und/oder setzt die aktuelle Session-ID</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>