Session problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session problem

    Hallo,
    ich habe folgendes Problem:
    über ein login formular kann man sich einloggen und natürlich auch wieder ausloggen, nur möchte ich verhindern das man beim zurück buttons des browsers wieder im loginbereich ist.
    ich verwende sessions mit datenbankanbindung,wo eine id nach login gesetzt wird und automatisch wieder gelöscht wird wenn man sich ausgeloggt hat.
    session_destroy() hilft auch nicht.
    wer kann mir dabei helfen?

  • #2
    Zitat von speedy3112 Beitrag anzeigen
    über ein login formular kann man sich einloggen und natürlich auch wieder ausloggen, nur möchte ich verhindern das man beim zurück buttons des browsers wieder im loginbereich ist.
    Dann unterbinde, dass die betreffenden Ressourcen vom Client gecached werden.

    (Informiere dich bitte, bevor du gleich reflexartig „und wie mach' ich das?“ fragst ...)

    session_destroy() hilft auch nicht.
    Natürlich nicht, es wird ja auch gar nicht aufgerufen, wenn der Client ein Dokument aus seinem Cache holt.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      is ja ok, ich wollte ja auch keinen fertigen script haben, nur suche ich wirklich schon seit tagen nach ner lösung und finde keine richtige:-(
      und "Ressourcen vom Client gecached" soweit reicht mein wissen leider noch nicht aus. was genau ist damit gemeint?

      Kommentar


      • #4
        Was ein Browsercache ist, weisst du aber?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ja das weis ich schon,aber mir fällt da nix ein wie ich meinen script damit verändern kann,das es nicht mehr so funktioniert wie oben beschrieben.
          ich möchte hier auch nicht als bissl blöd hingestellt werden nur weil ich ne frage habe. ich weis selbst das ich noch nicht soviel wissen besitze wie manch andere-hatte aber gehofft hier paar sachliche antworten zu bekommen. mehr wollte ich nicht

          Kommentar


          • #6
            Zitat von speedy3112 Beitrag anzeigen
            aber mir fällt da nix ein
            Nicht mal, ein bisschen im Handbuch nachzuschauen, fällt dir ein?

            Dass es gleich zwei Session-Funktionen gibt, die „cache“ im Namen haben, sollte doch wohl Grund genug sein, sich deren Beschreibung mal ein bisschen genauer anzuschauen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ok,laß mal deine guten tips-so schlau war ich schon,jedoch hat nix funktioniert.
              ich warte mal auf ne antwort von jemanden der sich nicht hier hinstellt,als wären alle anderen bissl doof.
              man bräuchte kein forum,wenn alles im buch steht;-)

              Kommentar


              • #8
                „Nix hat funktioniert“ ist als Problembeschreibung absolut unbrauchbar.
                Wenn du Hilfe bekommen willst, musst du schon ein bisschen mehr liefern.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Hallo,

                  du kannst doch am Anfang jedes Skripts die Session auslesen und im Falle der Login-Seite dann einen Redirect veranlassen, statt das Login-Fomular anzuzeigen, wenn die Session noch aktiv ist.

                  Ein anderer Ansatz ist es, ein Skript für mehrere Seiten zu verwenden und je nach Session-Status ein bestimmtes PHP-Skript einzubinden. Dann hätte die Login-Seite dieselbe Adresse wie die Seite XY und würde sich nur durch den Session-Status unterscheiden. Der Zurück-Button würde dann also auch nicht auf einen andere, sondern dieselbe Adresse leiten.

                  Prinzipiell hat wahsaga aber recht, nur formuliert er es immer .... sehr direkt

                  Gruß,

                  Amica
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    das hatte ich doch am anfang gemacht. also ich probier es nochmal.
                    mit session habe ich ein log-formular. der dmin kommt auf ne extra interne seite und alle anderen auch auf eine extra seite. die prüfung bevor man auf die seiten kommt habe ich auf einer 3. seite gemacht-siehe unten
                    das problem ist nur das man halt nach dem logout wieder mit dem zurückbutton in den geschützen bereich kommt.
                    PHP-Code:

                    <?php
                       
                    if(isset($_POST["bename"])){
                            
                    $benutzer=$_POST["bename"];
                            }
                        if(isset(
                    $_POST["pwd"])){
                            
                    $pwd=$_POST["pwd"];
                            }
                        
                    $admin=false;
                        
                    $nutzer=false;
                         
                    $connectionid  mysql_connect ("localhost",  "xxx","xxx" );
                                                                if (!
                    mysql_select_db  ("xxx"$connectionid))

                                                                {

                                                                    die (
                    "Keine Verbindung  zur Datenbank");

                                                                }
                        
                    $sql ="SELECT * FROM benutzerdaten WHERE Nickname='" $benutzer .  "' AND pass='" $pwd "'";
                         
                    $result mysql_query($sql$connectionid);
                        if(
                    mysql_num_rows($result)>0) {
                    $sessid session_id();
                            
                    $zeile=mysql_fetch_array($result);
                        if(
                    $zeile["status"] == 1) {
                            
                    $admintrue;
                            
                    $_SESSION["admin"]=true;
                            
                    $_SESSION["user_id"]=$zeile["id"];    
                            
                    $insert_session "Insert INTO session  VALUES(".$zeile["id"].",'".$sessid."')";    
                            
                    $ergebnis mysql_query($insert_session$connectionid);
                            }    
                            elseif(
                    $zeile["status"] == 2) {
                                    
                    $nutzer=true;    
                                    
                    $admin=false;
                                    
                    $_SESSION["user_id"]=$zeile["id"];
                            
                    $insert_session "Insert INTO session  VALUES(".$zeile["id"].",'".$sessid."')";        
                            
                    $ergebnis mysql_query($insert_session$connectionid);
                            }
                            else{

                                echo 
                    "Bitte den Aktivierungslink aus Ihrer E-Mail  best&auml;tigen!<br>
                                      <a  href=\"index.php?page=formular\">Zur&uuml;ck</a>"
                    ;
                            }
                            }
                    else
                        {
                            echo 
                    "Bitte erst Registrieren!<br>
                            <a  href=\"index.php?page=formular\">Zur&uuml;ck</a>"
                    ;
                        }
                        if(
                    $admin){
                            include(
                    "intern.php");
                        }
                        else if(
                    $nutzer){
                            include(
                    "intern1.php");
                        }
                    ?>

                    Kommentar


                    • #11
                      session_start();
                      steht natürlich ganz oben-hab es vergessen zu kopieren

                      Kommentar


                      • #12
                        Dann hast du vermutlich den Session-Cookie beim Logout nicht gelöscht.
                        Zuletzt geändert von AmicaNoctis; 17.02.2010, 23:26.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          habe drüber gelesen das das nix bringt sobald man auf zurückbutton klickt:-(

                          Kommentar


                          • #14
                            Zeig mal den Code für den Logout.

                            Kommentar


                            • #15
                              PHP-Code:
                               <?php   
                              session_start
                              ();

                              header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
                              header("Last-Modified: " gmdate("D, d M Y H:i:s") ." GMT");
                              header("Cache-Control: no-cache");
                              header("Pragma: no-cache");
                              header("Cache-Control: post-check=0, pre-check=0"FALSE);

                              ?> 

                              <html>

                              <head>

                              <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />

                              <meta http-equiv="pragma" content="no-cache">
                              <meta http-equiv="expires" content="0">
                              <meta http-equiv="cache-control" content="no-cache">

                              </head>
                                  <script type="text/javascript">

                                  <!--

                                      function open_druck()

                                      {

                                          druckfenster=window.open("","Druckfenster","height=400,width=680,resizable=yes");

                                          text=document.getElementById("ausgabe").innerHTML;

                                          druckfenster.document.write(text);

                                          druckfenster.focus();
                                          druckfenster.print();

                                          return false;

                                      }

                                  //-->

                                  </script>

                                  <body bgcolor="#C0C0C0">
                              <?php
                              if(isset($_SESSION["admin"])) {
                              if(
                              $_SESSION["admin"]=="true") {
                                  
                              $admin=true;
                                      }
                                      }
                                      echo 
                              $admin;
                              if(
                              $admin) {

                              //dann kommen paar formulare

                                      
                              </form><br><br>
                                      <
                              form action="index.php" method="post">
                                      <
                              input type="submit" name="raushier" value="Ausloggen">
                                      </
                              form>

                                      </
                              div>

                                      <
                              div id="seite" style="position:relative;width:98%; top:35px;left:1%;visibility:'.$zeige.';">'.$ausgabe.'</div>';
                              }
                              else {

                              echo "<p style=\"position:relative;left:30%;top:300px;color:red;font-size:34px;\">ZUTRITT VERWEIGERT!!!</p>";
                              }

                              echo "</body>";

                              echo "</html>";

                              ?>

                              Kommentar

                              Lädt...
                              X