loginbereich mit sesions

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

  • loginbereich mit sesions

    Hallo.
    Ich wollte meinen login bereich sicherer machen.
    Aber wie? Ich bin der Meinung das es mit session am besten ist. Ja oder Nein?
    Coockies verträgt nicht jeder und eine andere variante kenn ich nicht.

    Ich log mich momentan mit einem 13 stelligen passwort und einer e-mail adresse ein. Dann speicher ich die beiden werte in 2 variablem und schicke sie (noch) mit einem formular mit hidden feld weiter. Und das im ganzen bereich.... Das ist nicht das wahre.

    Ich dachte da an sowas:
    PHP-Code:
       @session_start()

    if(
    session_id())
     
    $_SESSION["eingabebereich"] = "start"
    Wie speicher ich eine Variable in so einer session?
    Kann mir bitte jemand mal ein beispiel sagen.
    Kann ich denn alle daten die ich übergeben möchte in die session speichern?
    Und wie übergebe ich die session? Würde sie gerne mit einem link weitergeben, aber ich weiß nicht, wie ich das mit einer session schreiben soll. kann mir da mal auch jemand ein beispiel sagen.
    Es würde mir sehr helfen, danke.
    Gut geraten ist halb gewußt.

  • #2
    Also Session ist schon das richtige.....
    Nur sollte eine Session so wenig wie nur möglich Informationen beinhalten.

    Die würde eigentlich reichen die SessionID in die DB beim Einloggen upzudaten und nach einer gewissen Zeitspanne bei Inaktivirät diese auf NULL setzen.

    Und Null bedeutet in diesem Fall ausgeloggt dazu brauchst du natürlich aber den Loginzeitpunkt.

    PHP-Code:
    $_SESSION['blubb']="jupi"
    würde in die Session Variable blubb den Inhalt jupi eintragen.

    Session werden entweder via Url oder aber als Session Cookie (standardmäßig eingestellt bei PHP) übertragen.

    Url ist nicht zu empfehlen da man aktive Session bookmarken könnte oder sogar an dritte weitergeben könnte welche dann auch eingeloggt wären.

    in der Kontante SID taucht die sessionid auf zum Anhängen an eine Url z.B.
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Kommentar


    • #3
      Danke... Ich denke du hast mich auf die richtige spur gebracht.
      Aber paar rätzel habe ich noch.

      Du sagtest: und nach einer gewissen Zeitspanne bei Inaktivirät diese auf NULL setzen.
      Wo bau ich den code schnipsel ein? Im loginbereich? Und wenn er sich vorher ausloggen will, setzte ich einfach die zeitspanne auf 0 und fertig?
      Ich frage denn immer nur nach der session und der zeit und wenn das stimmt ist er eingelogt?

      Und wie übergebe ich die session, von einem script zum anderen, wenn nicht per link?
      Cookies aktzepiert doch nicht jeder.
      Kannst du mir BITTE ein beispiel geben?
      Gut geraten ist halb gewußt.

      Kommentar


      • #4
        doppelt geschickt... sorry
        Zuletzt geändert von martinm79; 16.08.2004, 01:23.
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          Original geschrieben von martinm79
          Danke... Ich denke du hast mich auf die richtige spur gebracht.
          Aber paar rätzel habe ich noch.
          Bitte keine Doppelpostings

          Such im Forum Codeschnipsel mal nach Usermanagment solltest ein Schnipsel von Abraxax finden.

          Nimm dir dieses Script vor und versuch daraus zu lernen.

          Weitere Möglichkeit wäre die Klasse von mr.happiness zu verwenden was du ebenfalls dort finden wirst.

          Abgesehen davon

          findest du hier ein Tutorial:
          http://www.php-resource.de/tutorials/read/3/1/
          http://www.php-resource.de/tutorials/read/9/1/

          P.S.: Wie ich bereits sagte nicht mehr session_register verwenden sondern $_SESSION['var']=4534;
          und löschen mit unset()
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            Danke. Ich bin gespannt wie weit ich komme.

            (wegen dem doppelposting... lag an meiner internetverbindung und ich konnte das 2 nicht löschen.)
            Gut geraten ist halb gewußt.

            Kommentar


            • #7
              Also so weit kommt alles gut hin und läuft auch, aber ich habe probleme beim vernichten der sessions.

              Also:
              PHP-Code:
               unset($_SESSION["member"]); 
              Das fuktioniert. Aber wenn ich auf zurück gehe... und dann zeigt er zwar an, die seite kann nicht mehr angezeigt werden, aber wenn ich auf aktualiesieren drücke dann stehen die werte noch da. ?


              Ja und wenn ich :
              PHP-Code:
              session_destroy(); 
              anwende, denn führt er das auch aus. Also wenn ich danach die sessions id mit echo aufrufen will, geht das nicht. Aber wenn ich eine seite zurück gehe, dann steht die gleiche sessions immer noch da.
              Obwohl sie ja weg sein müßte, bzw. eine andere sessions.

              Oder sehe ich das falsch?
              Wie mache ich denn das, das keiner mehr auf zurück gehen kann?
              Gut geraten ist halb gewußt.

              Kommentar


              • #8
                PHP-Code:
                unset($_SESSION); //alles mus raus, alles; muss aber nicht unbedingt sein
                session_destroy(); //Session zerstört
                session_start(); //Neue Session starten => neue Session-ID 
                diese neue session-.id ist mit an sicherheit grenzender wahrscheinlichkeit verschieden von der, die du vorher hattest => zurück bringt dir auch nix
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  machs doch so:

                  PHP-Code:
                  //Beispiel
                  session_start();

                  if(!isset(
                  $_SESSION['log'])){
                  $_SESSION['log'] = 0;
                  //0 für nein 1 für ja
                  }

                  //wenn sich jetzt ein User einloggt setzt du die sessionvar "log" auf 1
                  //loggt er sich wieder aus setzt du die var wieder auf 0
                  //Dann prüfst du in allen Bereichen die gesichert sein sollen auf diese Variable.

                  //Am besten schreibst du dazu eine kleine Funktion die dann halt in die entsprechenden Seiten includet wird.

                  //Wenn du die loginzeit begrenzen willst, oder auf inaktivität prüfen willst speicherst du in einer zweiten sessionvar einen Zeitstempel. 
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    Danke....!!!!
                    Ich muß das mal alles durch probieren.
                    Gut geraten ist halb gewußt.

                    Kommentar

                    Lädt...
                    X