tag:forum.selfhtml.org,2005:/self Problem mit $_SESSION – SELFHTML-Forum 2019-05-24T17:07:40Z https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749290#m1749290 Bernd 2019-05-24T11:09:46Z 2019-05-24T11:09:46Z Problem mit $_SESSION <p>Hallo,</p> <p>was ich nicht verstehe ist folgendes. Ich habe am Anfang meiner Seite folgendes Script</p> <pre><code class="block language-php"><span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'abschicken'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'abschicken'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">&&</span> <span class="token keyword">empty</span><span class="token punctuation">(</span><span class="token variable">$errors</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$stmt</span> <span class="token operator">=</span> <span class="token variable">$mysqli</span><span class="token operator">-></span><span class="token function">prepare</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"DELETE FROM permissions WHERE userID=?"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$stmt</span><span class="token operator">-></span><span class="token function">bind_param</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"s"</span><span class="token punctuation">,</span><span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'mitarbeiter'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$stmt</span><span class="token operator">-></span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span><span class="token function">is_array</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"bereich"</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">&&</span> <span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"bereich"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span><span class="token variable">$_POST</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"bereich"</span><span class="token punctuation">]</span> <span class="token keyword">as</span> <span class="token variable">$v</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token variable">$stmt</span> <span class="token operator">=</span> <span class="token variable">$mysqli</span><span class="token operator">-></span><span class="token function">prepare</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"INSERT INTO permissions (userID, bereichID) VALUES (?, ?)"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$userID</span> <span class="token operator">=</span> <span class="token variable">$_GET</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'mitarbeiter'</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token variable">$bereichID</span> <span class="token operator">=</span> <span class="token variable">$v</span><span class="token punctuation">;</span> <span class="token variable">$stmt</span><span class="token operator">-></span><span class="token function">bind_param</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"ss"</span><span class="token punctuation">,</span> <span class="token variable">$userID</span><span class="token punctuation">,</span> <span class="token variable">$bereichID</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$stmt</span><span class="token operator">-></span><span class="token function">execute</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'permissions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Location: <span class="token interpolation"><span class="token variable">$extra</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>Etwas weiter unten dann folgendes für die Ausgabe</p> <pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<div> Berechtigungen wurden erfolgreich aktualisiert.</div>"</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>Wenn ich jetzt den ganzen Krempel abschicke erhalte ich <em>keine</em> Ausgabe dass alles OK war.</p> <p>Wenn ich allerdings diese Zeile deaktiviere</p> <pre><code class="block language-php"><span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Location: <span class="token interpolation"><span class="token variable">$extra</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// in $extra steht meine URL</span> </code></pre> <p>erhalte ich eine Ausgabe. Ist eine Session nicht für solche Zwecke da, dass ich später darauf zugreifen kann?</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749291#m1749291 Christian Kruse https://wwwtech.de/about 2019-05-24T11:14:09Z 2019-05-24T11:14:09Z Problem mit $_SESSION <p>Hallo Bernd,</p> <blockquote> <pre><code class="block language-php"> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'permissions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> </code></pre> <p>Etwas weiter unten dann folgendes für die Ausgabe</p> <pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> </code></pre> </blockquote> <p>Rechtschreibfehler oder steht da tatsächlich einmal <code>"permissions"</code> und einmal <code>"berechtigungen"</code>?</p> <blockquote> <p>Wenn ich jetzt den ganzen Krempel abschicke erhalte ich <em>keine</em> Ausgabe dass alles OK war.</p> <p>Wenn ich allerdings diese Zeile deaktiviere</p> <pre><code class="block language-php"><span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Location: <span class="token interpolation"><span class="token variable">$extra</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// in $extra steht meine URL</span> </code></pre> <p>erhalte ich eine Ausgabe. Ist eine Session nicht für solche Zwecke da, dass ich später darauf zugreifen kann?</p> </blockquote> <p><code>header()</code> beendet nicht das Script. Du wirst vermutlich deinen Session-Wert setzen und in der gleichen Script-Instanz auch wieder <code>unset()</code>zen. Setz ein <code>exit()</code> hinter deinen <code>header()</code>-Aufruf oder so.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749293#m1749293 dedlfix 2019-05-24T11:20:09Z 2019-05-24T11:20:09Z Problem mit $_SESSION <p>Tach!</p> <blockquote> <p>Ist eine Session nicht für solche Zwecke da, dass ich später darauf zugreifen kann?</p> </blockquote> <p>Ist die Session auch eröffnet? Ich sehe kein session_start()-Aufruf. Gut, könnte auch per session.auto_start in der Konfiguration aktiviert worden sein, aber das so zu tun ist eher ungewöhnlich, und du auch nicht erwähnt das so zu haben. Jedenfalls speichert PHP den Inhalt von $_SESSION nicht ohne einen Session-Start.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749303#m1749303 pl 2019-05-24T13:10:02Z 2019-05-25T17:01:25Z Problem mit $_SESSION <p>Danke Dir!!!</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749294#m1749294 Bernd 2019-05-24T11:25:00Z 2019-05-24T11:25:00Z Problem mit $_SESSION <p>Hallo,</p> <p>ich habe in jedem Script ganz oben folgendes stehen</p> <pre><code class="block language-php"><span class="token function">ob_start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">session_start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>jetzt habe ich mal folgendes getestet wie Christian mit es geschrieben hat</p> <pre><code class="block language-php"><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Location: <span class="token interpolation"><span class="token variable">$extra</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">exit</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>bringt allerdings auch nicht. Und ja, ich lösche die Session im gleichen Script wieder, siehe hier</p> <pre><code class="block language-php"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">isset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"<div> Berechtigungen wurden erfolgreich aktualisiert.</div>"</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>alles passiert in einer Datei.</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749296#m1749296 dedlfix 2019-05-24T12:11:00Z 2019-05-24T12:11:00Z Problem mit $_SESSION <p>Tach!</p> <p>Ich kann mich nur wiederholen, was ich schon oft gesagt habe: Kontrollausgaben.</p> <p>Wenn es Probleme mit dem Programmfluss gibt, bau Kontrollausgaben ein, um zu sehen, welche Teile abgearbeitet werden und welche nicht.</p> <p>Das Session-Handling an sich ist jedenfalls sehr einfach und sehr zuverlässig.</p> <pre><code class="block language-php"><span class="token function">session_start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'test'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'test'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">time</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">var_dump</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'test'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Beim ersten Aufruf wirst du einmal <code>null</code> sehen, vielleicht garniert mit einer Notice-Meldung über das nicht vorhandenen "test" sowie eine Zeitangabe. Wenn nach einem Refreshen diese Zeit nun an erster Stelle zu sehen ist, ist der Session-Mechanismus grundsätzlich lauffähig. Wenn dieser einfache Test geklappt hat, liegt das Problem in deiner Programmlogik, zu der ich nicht viel sagen kann, wenn nur Ausschnitte vorliegen.</p> <p>Sessions benötigen Cookies.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> Du kannst das nachvollziehen, wenn du dir die Requests in den Entwicklertools anschaust. Da muss beim Erstaufruf ein Set-Cookie in der Serverantwort zu sehen sein und bei Folgeaufrufen muss dieser Cookie im Request mitgesendet werden.</p> <p>dedlfix.</p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Oder einen Key an der URL, was man aber nicht macht, weil eine solche URL leicht entwendbar ist und damit die Session übernommen werden kann. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749297#m1749297 Bernd 2019-05-24T12:14:13Z 2019-05-24T12:14:13Z Problem mit $_SESSION <p>Wenn ich das Script das erste mal aufrufe bekomme ich folgende Meldung</p> <blockquote> <p>NULL int(1558699978)</p> </blockquote> <p>Wenn ich dann auf speichern klicke erhalte ich folgendes</p> <blockquote> <p>int(1558699978) int(1558699983)</p> </blockquote> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749299#m1749299 dedlfix 2019-05-24T12:26:38Z 2019-05-24T12:26:38Z Problem mit $_SESSION <p>Tach!</p> <blockquote> <p>Wenn ich das Script das erste mal aufrufe bekomme ich folgende Meldung</p> <blockquote> <p>NULL int(1558699978)</p> </blockquote> <p>Wenn ich dann auf speichern klicke erhalte ich folgendes</p> <blockquote> <p>int(1558699978) int(1558699983)</p> </blockquote> </blockquote> <p>Wunderbar, Sessions funktionieren grundsätzlich. Und das error_reporting unterdrückt Notice-Meldungen, was für die Entwicklungsumgebung nicht gut ist, weil damit eine Menge potentielle Probleme beim Zugriff auf nicht vorhandene Dinge nicht gemeldet werden.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749300#m1749300 Bernd 2019-05-24T12:38:02Z 2019-05-24T12:38:02Z Problem mit $_SESSION <p>Ich habe etwas umgebaut</p> <pre><code class="block language-php"> $_SESSION['berechtigungen'] = 1; $_SESSION['berechtigungenVorname'] = $_POST["vorname"]; $_SESSION['berechtigungenName'] = $_POST["name"]; header("Location: $extra"); exit(); if (isset($_SESSION['berechtigungen'])) { if ($_SESSION['berechtigungen'] === 1) { ?> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span> Berechtigungen wurden für <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>strong</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">echo</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">" "</span> <span class="token operator">.</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>strong</span><span class="token punctuation">></span></span> erfolgreich aktualisiert.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </span></code></pre> <p>Komischerweise funktioniert es jetzt Keine Ahnung was los war.</p> <p>Was ich jetzt wieder nicht verstehe ist das exit(); Exit heißt doch abbrechen? Warum wird mir dann mein HTML etwas weiter unten dennoch angezeigt? Oder hat ein ein exit nichts mit der Darstellung zu tun?</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749301#m1749301 Christian Kruse https://wwwtech.de/about 2019-05-24T12:50:11Z 2019-05-24T12:50:11Z Problem mit $_SESSION <p>Hallo Bernd,</p> <blockquote> <p>Ich habe etwas umgebaut</p> <pre><code class="block language-php"> $_SESSION['berechtigungen'] = 1; $_SESSION['berechtigungenVorname'] = $_POST["vorname"]; $_SESSION['berechtigungenName'] = $_POST["name"]; header("Location: $extra"); exit(); if (isset($_SESSION['berechtigungen'])) { if ($_SESSION['berechtigungen'] === 1) { ?> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span> Berechtigungen wurden für <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>strong</span><span class="token punctuation">></span></span><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">echo</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string double-quoted-string">" "</span> <span class="token operator">.</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>strong</span><span class="token punctuation">></span></span> erfolgreich aktualisiert.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">2</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token constant">NULL</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungen'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenVorname'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'berechtigungenName'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </span></code></pre> <p>Komischerweise funktioniert es jetzt Keine Ahnung was los war.</p> </blockquote> <p>Wenn der Code oben der ist, den du tatsächlich einsetzt, dann glaube ich das nicht.</p> <blockquote> <p>Was ich jetzt wieder nicht verstehe ist das exit(); Exit heißt doch abbrechen? Warum wird mir dann mein HTML etwas weiter unten dennoch angezeigt? Oder hat ein ein exit nichts mit der Darstellung zu tun?</p> </blockquote> <p>Unter der Annahme, dass du deinen Code oben nur verkürzt gepostet hast und er tatsächlich funktioniert: generell hast du es ja mit zwei Aufrufen zu tun. Ein Aufruf, bei dem du deine Datenbank-Operationen machst und an dessen Ende du deinen Redirect machst. Hier muss das <code>exit()</code> ausgeführt werden, damit die Verarbeitung abbricht und du deine Session nicht im gleichen Durchlauf wieder zurück setzt.</p> <p>Der zweite Aufruf passiert durch den Redirect. Hier hast du andere Parameter, deshalb geht der Programmablauf an deinen Datenbank-Einträgen vorbei und schickt dir die richtige Ausgabe.</p> <p>Das kannst du im Netzwerk-Tab der Entwickler-Tools deines Browsers auch nachvollziehen.</p> <p>Ich würde dir aber raten, die Erfolgsmeldung nicht im gleichen Script zu erzeugen in dem du auch deine Datenbank-Operationen machst. Da passieren zu schnell Fehler.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749302#m1749302 dedlfix 2019-05-24T12:59:38Z 2019-05-24T12:59:38Z Problem mit $_SESSION <p>Tach!</p> <blockquote> <p>Was ich jetzt wieder nicht verstehe ist das exit(); Exit heißt doch abbrechen? Warum wird mir dann mein HTML etwas weiter unten dennoch angezeigt?</p> </blockquote> <p>Kann ich nicht nachvollziehen, bei mir bricht die Ausgabe an der Stelle ab. Das PHP-Handbuch nennt lediglich "Shutdown functions and object destructors" als Ausnahme.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2019/may/24/problem-mit-dollar-session/1749325#m1749325 Mitleser 2019-05-24T17:07:40Z 2019-05-25T17:01:25Z Problem mit $_SESSION <blockquote> <p>Danke Dir!!!</p> </blockquote> <p>Gerne!</p>