Login-System

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

  • Login-System

    Hi, ich hab ein Loginsystem auf meiner Page.
    Im Adminbereich sehen die Links so aus:

    echo "
    <form action=\"index.php\" method=\"get\">
    <input type=\"hidden\" name=\"section\" value=\"admin\">
    <select name=\"action\" size=\"1\">";

    // ist ein Formular, welches pro Rang des Users nur bestimmtesanzeigt, deswegen isses bisl auseinandergerissen

    echo "
    <option value=\"spielhinzufuegen\">Spielhinzufügen</option>";

    ich übermittel keine Session-ID, aber irgendwie merkt er sich trotzdem, dass er eingeloggt ist. Das ist irgendwie konfus. Ich arbeite nach dem Tutorail php-q.net , da wird .SID. an den Link angehängt. Sieht ein bisl komisch aus, weil kein $ am anfang ist, es aber mit den Punkten wie ne Variable ausschaut. Ist das ne Art Konstante?

    if (isset($_SESSION['nickname']))

    so wird im Adminbereich geprüft ob eine Session vorhanden ist.
    Die Session die nach dem Login erstellt wird heißt nickname.
    das läuft alles innerhalb der index.php ab, wo jedoch am anfang immer die IP getestet wird und eine session gestartet wird, wird da die session des logins nicht irgendwie überschrieben?

    session_start ();

    if(!isset($_SESSION['IP']))
    {
    $_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
    }

    if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR'])
    {
    echo "Sie dürfen nicht die Session von einem anderen User benutzten.";
    die();
    }

    mein Hauptaugenmerk bei der Frage liegt darauf, inwieweit sich die Sessions beeinflussen und wie es sein kann, dass man trotz nicht übermittelter Session-ID eingeloggt ist. Danke ;=)
    Zuletzt geändert von atmog; 06.03.2008, 22:31.

  • #2
    Er kann sich das sehr wohl merken, ganz einfach mit einem cookie.

    PHP hängt je nach Einstellungen die URL automatisch die SID an (z.B. wenn Cookies deaktiviert sind kann PHP so verfahren).

    mfg
    bugbuster
    tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
    documentation: php.net mysql.com framework.zend.com

    Die Nachtwache!

    Kommentar


    • #3
      weil ein so genanntes session-cookie gesetzt wird. als bettlektüre empfehle ich dir den abschnitt im handbuch

      btw: bei meinem ersten session-versuch habe ich das auch nicht ganz begriffen

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Noch ein Tipp: Deaktiviere doch einfach mal Cookies und schaue dann an wie sich die Seite verhält.

        mfg
        bugbuster
        tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
        documentation: php.net mysql.com framework.zend.com

        Die Nachtwache!

        Kommentar


        • #5
          das heißt es funktioniert bei mir nur, weil ich cookies zulasse?
          er erstellt die ja anscheinend automatisch. d.h. bei nem link muss ich die session id immer dran hängen, damit ich den user weiter auf der seite identifizieren kann. wie war das mit der .SID. nochmal? das war bisl konfus. ich hätte, da die session bei mir nickname heißt einfach den link so geschrieben:

          "index.php?section=admin&action=newsadden".$_SESSION['nickname'].""


          problematisch wirds aber wenn der Link aufgesplittet ist wie oben bei dem Formular. Obwohl, vll. geht das ja mit nem hidden input feld am ende, in das die session is gepackt wird, das könnte er dann ja immer automatisch mit dranhängen...*grübel* und ausprobier

          Auf jeden Fall schonmal vielen Dank für eure schnellen Tipps, finds schön wenn sich jemand die Zeit nimmt andern zu helfen. Versuch auch vieles selbst zu lösen und lese fleißig tutorials, aber manche sachen sind halt dann doch nicht immer so klar

          Gruss Atmog

          Kommentar


          • #6
            das heißt es funktioniert bei mir nur, weil ich cookies zulasse?
            du hast nicht deine seite getestet... deaktivier die cookies und du wirst sehen es wird trotzdem funktionieren wenn du standardeinstellungen für php hast. php wird selbstständig die session an die URL anhängen. wie alt ist das tutorial?!

            mfg
            bugbuster
            tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
            documentation: php.net mysql.com framework.zend.com

            Die Nachtwache!

            Kommentar


            • #7
              naja es ist schon ein bisl älter denke ich

              ich benutzt auch wamp, d.h. ich habs auf keinem echten server laufen, aber das sollte ja keinen unterschied machen

              ich hab mir jetzt mal den Tipp mit dem Handbuch zu Genüge geführt. Viel wirres Zeugs drinne, aber auch einiges interessantes.
              Ich lag mit meinem Gerate, dass SID ne Konstante sein könnte wohl ganz gut


              <A HREF="nextpage.php?<?php echo htmlspecialchars(SID); ?>">weiter</A>.

              steht zum anhängen einer SID an nen Link im Handbuch. Ich hab da aber noch ein paar Get Variablen dabei, aber ich denke mal so müsste es gehen....

              index.php?SID&section=admin&action=newsadden


              P.S. ich hab Cookies net zum prüfen deaktiviert (schande über mein haupt, aber ich hols jetzt nach )

              P.P.S wahhh die links funktionieren nicht mehr .....wahhh??? eigentlich nicht, eigentlich ist es eher beruhigend
              wie sollen sie auch wenn die SID net ausdrücklich drangehängt wurde.... ich pack die jetzt mal manuell hintendran, dann sollte es ja hoffentlich gehen (ohne cookies)

              P.P.P.S es ist mit deaktivierten Cookies deutlich einfacher zu verstehen und nachzuvollziehen wie Sessions funktionieren. Zumindest bisl verstehen^^

              Ich hab jetzt nen Link der die Session-ID auch gut überträgt

              echo "<a href=\"index.php?"; echo SID; echo "&section=admin&action=userbearbeiten\">Testlink mit Session</a>";

              allerdings weiss ich nicht wie ich das in mein Formular einbaun soll, weil dass ja so total anders arbeitet

              echo "<form action=\"index.php\" method=\"get\">
              <input type=\"hidden\" name=\"section\" value=\"admin\">
              <select name=\"action\" size=\"1\">";
              echo "<option value=\"userbearbeiten\">User bearbeiten</option>";


              so sagt er, dass ich keine loginrechte habe, also stimmt was dran nicht:

              <input type=\"hidden\" name=\""; echo SID; echo "\">

              direkt am anfang des Formulars hängen klappt auch nicht, also index.php? und dann die session id, alles was da hinter der index.php kommt ignoriert er gekonnt
              Zuletzt geändert von atmog; 07.03.2008, 01:00.

              Kommentar


              • #8
                ich/wir wären froh wenn du ab und zu auch mal die php tags nutzt .. das wertet den quellcode ungemein auf.

                beantworte mir folgendes: wieso willst du die session mit einem formular verarbeiten und was versprichst du dir davon?

                trotzdem solltest du dir evtl. beim formular den bereich action anschauen. wenn du die session unbedingt so übertragen magst dann sollte das ziel des formulars nicht nur index.php sein sondern auch die session beinhalten.

                gut einiges was du da vor hast ist fragwürdig aber wenn ich so zurückdenke war mein quellcode sicherlich nicht besser

                mfg
                bugbuster
                tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                documentation: php.net mysql.com framework.zend.com

                Die Nachtwache!

                Kommentar


                • #9
                  Original geschrieben von Bugbuster
                  Noch ein Tipp: Deaktiviere doch einfach mal Cookies und schaue dann an wie sich die Seite verhält.

                  mfg
                  bugbuster
                  Aus Spaß hab ich das bei mir auch mal gemacht ... und mein Login-Bereich geht nicht mehr, er macht aber ne neue Session (SID ändert sich) ... neues Thema für mich, oder hier mitlesen?

                  Unter FF: Disable External Site Cookies => Es läuft; Disable All Cookies => Es läuft nicht.
                  Liebe Grüße,
                  SteKoe!

                  PHP Tutorials
                  Peter Kropff | Quakenet | Schattenbaum.net

                  Kommentar


                  • #10
                    Du wirst da irgendwo deine SID nicht mitschleifen, dann verliert der Browser die Session!
                    Unter FF: Disable External Site Cookies => Es läuft; Disable All Cookies => Es läuft nicht.
                    Cookies deiner Seite sind natürlich nicht extern, darum funktioniert das mit der FF-Option.

                    Kommentar


                    • #11
                      stimmt, habe nach dem Login falsch weitergeleitet. Danke!
                      Liebe Grüße,
                      SteKoe!

                      PHP Tutorials
                      Peter Kropff | Quakenet | Schattenbaum.net

                      Kommentar


                      • #12
                        naja ich will die ja nicht verarbeiten, der grundgedanke ist lediglich, dass ich bei jedem link die session id mit schicke, da der link aber beim formular so aufgesplittet ist stellt sich hier das problem wie ich sie an den link dranhänge

                        es direkt an das index.php zu packen hab ich ja schonmal probiert, das ging leider nicht.

                        gruss atmog

                        P.S. habs jetzt hinbekommen, hatte erst doppel PHPSESSID drin, aber mit der funktion session_id() hats dann geklappt.

                        <input type=\"hidden\" name=\"PHPSESSID\" value=\""; echo session_id(); echo "\">
                        Zuletzt geändert von atmog; 07.03.2008, 17:19.

                        Kommentar

                        Lädt...
                        X