$_SESSION Wirkungsbereich

  • Kann mir jemand sagen, wieso die $_SESSION auf TRUE gesetzt ist , wenn sie doch erst innerhalb einer if-Bedingung das erste mal geschrieben wird und ihr dort der Wert TRUE zugewiesen wird.

    Code
    <span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> $passwort </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"123"</span><span class="syntaxdefault"> AND $name </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"peter"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">" geht "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> TRUE</span><span class="syntaxkeyword">;<br />}<br />else<br />{<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'send'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"ja"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">" NA-So geats ita!"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"> </span>



    aber die $_SESSION dürfte doch gar nicht existieren wenn die Bedingung FALSE ist



    wen ich jedoch

    Code
    <span class="syntaxdefault"><br />    $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> FALSE</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>


    im else {Block} einfüge ist sie nicht gesetzt wenn die Bedingung nicht erfüllt ist (klar)



    Gruss

  • Ich verstehe leider dein Problem nicht genau?


    Du setzt einfach die Session Variable 'login' am Anfang deiner Seite, schreibst die if Bedingung, wenn sie zutrifft setzt du die Session Variable 'login' auf true, wenn nicht dann gibst du einfach einen Fehler aus.

  • wenn ich aber die $_SESSION erst in einer Bedingung setze für den Fall TRUE


    dann dürfte sie für den Fall FALSE doch nicht existieren


    ich muss aber erst

    Code
    <span class="syntaxdefault">    $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">FALSE</span><span class="syntaxkeyword">;<br /> </span><span class="syntaxdefault"></span>

    im else Block schreiben

  • Pass auf, eine leere Variable gibt immer false zurück, will heißen wenn du die Session nicht so beginnst:


    PHP
    <span class="syntaxdefault"><br />  session_start</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">  $_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">  if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">bli </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> bla </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> bla </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> blubb</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{...}<br /></span><span class="syntaxdefault"> </span>


    Dann wird diese Session Variable immer false zurückgeben, bis du sie intialisierst.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!