session_start(); im Skript

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

  • session_start(); im Skript

    Hallo,

    ich brauche Eure Hilfe.

    Ich habe mir eine Webseite mit Modulen zusammenprogrammiert. Es sind drei Module, die ich dann, je nachdem was ich brauche, neu laden kann.

    navi.php <- Navigation und LogIn
    main.php <- Hauptseite
    right.php <- ein Banner

    config.inc.php <- wird includet und darin stehen dann die SQL-Abfragen

    Jetzt habe ich mir ein kleines Login-Skript gebastelt. Dieses Skript ist in der navi.php enthalten. Man kann dort Benutzer und Passwort eingeben und dann wird in der Datenbank geschaut ob es diesen Benutzer mit dem eingebenen Passwort gibt. Wenn ja, dann wir die SessionID in die Datenbank geschrieben und es kommt eine Willkommens-Meldung. Klappt ohne Probleme.

    Meine Frage ist nun, WO GENAU muss ich die SessionID setzen, also dieses session_start(); ? Denn ich habe vor mittels BenutzerID und der SessionID zu prüfen, ob der Benutzer eingeloggt ist. Jedoch erhalte ich bei jedem neu laden der Seite eine neue SessionID. Und somit komme ich nicht einmal voran eine Ausloggen-Funktion zu programieren, denn ich habe dann eine BenutzerID, aber eine andere SessionID wie zuvor und kann somit diese nicht aus der Datenbank löschen.

    Ich hoffe Ihr versteht mein Problem. Wenn Ihr Beispielcode braucht, dann gebt Bescheid.

    PS: ich habe auch schon das Tutorial zu mrhappines durchgelesen und meinen Code danach angepasst, klappt aber auch nicht, ...

  • #2
    session_start() mußt du am Anfang auf jeder deiner Seite setzen. Wenn du mit include() arbeitest, dann such dir eine Datei aus, welche immer eingebunden wird, dort baust du session_start() ein.

    Kommentar


    • #3
      Das habe ich nun gemacht. Der Befehl steht als erster in meiner config.inc.php. Anmelden klappt auch, jedoch dann wieder das Problem beim Wechseln der Seite.

      Kommentar


      • #4
        Re: session_start(); im Skript

        Original geschrieben von chris_davidi
        ich habe auch schon das Tutorial zu mrhappines durchgelesen und meinen Code danach angepasst, klappt aber auch nicht, ...
        hmm, muss am anpassen liegen

        wie sehen die links aus auf die du klickst?
        steht die session-id da als url-parameter?

        wie übergibst du die session?
        URL? oder Cookie?

        mach mal eine datei
        PHP-Code:
        <?php
        phpinfo
        ();
        ?>
        und poste alles was im abschnitt "session" steht
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          dann vermute ich, dass der Client kein Cookies akzeptiert, da mußt du

          - entweder use_trans_sid auf on setzen (php.ini)
          - oder die SID manuell mitgeben -> Such mal im Forum

          Kommentar


          • #6
            Meine Links sehen so aus (es wird also kein Url-Parameter mitgeliefert, wo die Session beinhaltet):

            PHP-Code:
            <a href="index.php?main=pages/kontakt">Kontakt</a><br
            Die config.inc.php wird über die index.php inkludiert und darin steht auch session_start.

            Hier mal der Abschnitt session:

            Session Support - enabled
            Registered save handlers - files user

            Directive Local Value Master Value
            session.auto_start Off Off
            session.bug_compat_42 On On
            session.bug_compat_warn On On
            session.cache_expire 180 180
            session.cache_limiter nocache nocache
            session.cookie_domain no value no value
            session.cookie_lifetime 0 0
            session.cookie_path / /
            session.cookie_secure Off Off
            session.entropy_file no value no value
            session.entropy_length 0 0
            session.gc_divisor 100 100
            session.gc_maxlifetime 1440 1440
            session.gc_probability 1 1
            session.name PHPSESSID PHPSESSID
            session.referer_check no value no value
            session.save_handler files files
            session.save_path /tmp /tmp
            session.serialize_handler php php
            session.use_cookies On On
            session.use_only_cookies Off Off
            session.use_trans_sid Off Off

            Mein Client ist ja dann der Browser, oder? Dieser unterstützt Cookies. Mir wäre es über HTTP natürlich lieber, wie kann ich das beeinflussen? Über SID? Dann schaue ich mal nach.

            Kommentar


            • #7
              akzeptierst du denn auch cookies?

              schau mal nach in deinem browser.
              wenn dein browser für die domain, auf dem das skript liegt, keine cookies akzeptiert, dann fliegst du so auf die nase
              lies dir auch noch das von asp2php durch
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ja, ich akzeptiere Cookies.

                Ich habe mir den Beitrag durchgelesen und auch im Board gesucht. Ich würde es nun gerne so machen, dass ich diese session weitergebe. Aber eines ist mir dann nicht klar. Wie mache ich es, dass ich bei dem Neuladen keine neue session bekomme. Sonst schreibe ich ja eine Session in eine Variable und sie ist wieder eine neue. Ist ja wieder das gleiche Problem. Irgendwie stehe ich auf dem Schlauch.

                Kommentar


                • #9
                  wenn du cookeis akzeptierst und dein brwoser auch, dann wird die session-id weitergeben

                  da du immer eine neue session-id bekommst, wird die alte wohl nicht weitergegeben

                  das heißt für mich, dass du deinem browser gesagt hast, er darf (zumindest dies spezielle) cookie nicht akzeptieren

                  wo steht denn, dass er es tut?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    In meinem Browser habe ich die niedrigste Sicherheitsstufe und eingestellt, dass er ALLE Cookies annehmen soll. Habe sonst nie Probleme mit Cookies oder so, nur auf meiner eigenen Seite. *g*

                    Kommentar


                    • #11
                      und du hast die liste mit seiten, die trotzdem nicht dürfen geleert?

                      Extras -> Internetoptionen -> Datenschutz -> Gruppe "Websites" -> Bearbeiten...
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Ja, genau. So ist es. Das habe ich alles gemacht.

                        Kommentar


                        • #13
                          in php.ini:

                          error_reporting = Was?
                          display_errors = Was?

                          Kommentar


                          • #14
                            Kann ich das ändern wenn ich Webspace gemietet habe? Also diese php.ini? Wenn ja, wie?

                            Schaut mal selbst, vielleicht liegt es doch an meinem Browser?

                            http://sql.klugerweb.de/index.php

                            Dann eben das Login:

                            Benutzer: chris_davidi
                            Passwort: test

                            Und dann wechselt mal auf den Link Alben oder Kontakt und schaut ob ihr dann noch eingeloggt sind. Denn ich bin es dann nichtmehr. Ganz oben auf der Seite habe ich mal zum Testen die session-id einblenden lassen.

                            @all Danke schon einmal für die Hilfe.

                            Kommentar


                            • #15
                              ich vermute, dass die Session-Daten nicht korrekt auf dem Server abgelegt ist. Was sagt phpinfo() über:

                              error_reporting = Was?
                              display_errors = Was?

                              hast du 'ne Möglichkeit zu prüfen (oder prüfen lassen), ob die Session-Daten unter /tmp korrekt abgelegt ist? Eventuell Zugriffsrechte auf /tmp prüfen.

                              Kommentar

                              Lädt...
                              X