logout



  • hallo, hab anhand eines tutorial ein login-script gebastelt, wo am anfang sowas hier steht:

    <?php 
    session_start();
    
    if(!isset($_SESSION["username"]))
       {
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit;
       }
    ?>
    

    Klappt auch alles wunderbar aber wie bastel ich mir nun ein Logout-Link? So das die Session wieder gelöscht wird?.



  • Hallo,

    unset($_SESSION["username"]);
    $_SESSION["username"]="";
    //oder:
    $_SESSION = Array(); // Wenn sie ganze Session gelöscht werden soll
    

    VlG



  • Also muss ich sowas in der Art basteln:

    <a href=".....action=logout">Ausloggen!</a>

    ....
    if (action == logout) { _SESSION = Array();
    }



  • Hallo,

    da "action" sehr nach URL-Parameter aussieht wohl eher so:

    if ($_GET['action'] == "logout") 
    { 
       $_SESSION = Array(); 
    }
    

    VlG



  • ich wuerde anstatt action eine andere Bezeichnung waehlen.
    Zwar sollte es im Bereich von URL zu keinen Problemen fuehren, aber man weiß ja nie, ob sowas mal auf Post umgebaut wird und da ist action als Attribute im Form-Tag reserviert. Gerade bei Verwendung von Javascript kommts dann zu Problemen. Bin eben etwas vorausschauend 😃



  • Hallo,

    "action" ist wie du richtig sagst ein Attribut des Formulars, aber kein Name, weswegen es überhaupt keine Rolle spielt, ob GET oder POST verwendet wird.

    VlG



  • Bei sowas wuerde ich aber mal ganz vorsichtig sein.

    <form name="foo" action="test" method="post">
    <input type="hidden" name="action" value="">
    </form>
    
    <script type="text/javascript>
    function bar()
    {
        document.forms.foo.action.value = "bla";
    }
    </script>
    


  • Hallo...

    Tut mir leid, ich kann an deinem Code nicht bedrohliches erkennen. Ich sehe aber dass du Anführungszeichen vergessen hast und der Code deswegen zu Fehlern führt :p

    VlG



  • öhm ... des mit den Anführungszeichen war ein versehen ... sorry.
    Bedrohlich ist er auch nicht. Aber er hat bei mir schon zu diversen JS-Fehler geführt. Ich kenne viele, die hidden-Variablen "action" nennen und über kurz oder lang dann auf Problem stoßen. Des denk ich mir hier grad net aus 🤡 Aber ich will halt auch mal was schlaues von mir geben



  • sodala ... kurzer Nachtrag, weil ich will ja hier auch richtigerweiße alles genau Beschreiben:

    <form name="foo" action="" method="post">
    		<input type="hidden" name="action" value="">
    	</form>
    
    	<script type="text/javascript">
    		function bar()
    		{
    			document.forms.foo.action = "test.php";
    			document.forms.foo.action.value = "test";
    		}
    	</script>
    

    Folgendes führt im IE zur JS-Fehlermeldung "Das Objekt unterstützt diese Eigenschaft oder Methode nicht.".
    Wie bereits erwähnt, handelt es sich hier nicht um ein Sicherheitsrisiko oder sonstwas. Ich möcht blos im Allgemeinen darauf hinweissßen, dass man mit Variablen (in diesem Fall action) lieber zweimal ueberlegen sollte, ob man diese so nennt. Auch wenn davon nicht gleich die Welt untergeht 🤡



  • Hallo,

    den Zusammenhang zu GET oder POST kann ich darin trotzdem noch nicht erkennen?! Dein Einwand mag richtig sein, hat aber das Thema ein wenig verfehlt 😃

    VlG



  • RandomAccess85 schrieb:

    Zusammenhang zu GET oder POST kann ich darin trotzdem noch nicht erkennen

    Ein wenig verfehlt mag wohl sein 😉 ... der gewohnte Programmierer verwendet aber meist immer die gleichen Variablenbezeichnungen. In diesem Fall action, dessen Inhalt dann die Aktion bezeichnet. Die Gewohnheit würde früher oder später dann zu meinem geposteten Fall führen. Hats alles scho gegeben 😃

    Ich wollte auch nur mal kurz drauf hinweißen, nicht das appelschole action als Bezeichnung überall verwendet.


Anmelden zum Antworten