Ankündigung

Einklappen
Keine Ankündigung bisher.

sessions

Einklappen

Neue Werbung 2019

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

  • sessions

    hallo.

    ich habe ein login script das bei erfolgreichem login folgende funktion startet.
    Code:
    // -------------- LOGIN.PHP ---------------------
    function login_erfolgreich()
    {
    session_register ('user'); 
    $_SESSION["user"] = $form_benutzername; 
    header("Location: home.php");
    }
    die home.php soll pruefen ob eine session uebergeben wurde.
    Code:
    session_start();
    if (isset($_SESSION["user"]) && !empty($_SESSION["user"]))  { 
    	echo "erfolg";
    	}
    else {
    	echo "kein erfolg";
    	}
    }
    weiss jemand von euch warum das nicht funktioniert?
    lg
    michi

  • #2
    Also falls Cookies deaktiviert sind, musst du die Session-ID an den Link anhängen:
    Code:
    header("Location: home.php?".session_name()."=".session_id());
    Du kannst außerdem das isset() weglassen, da dass empty alles schon macht. Es prüft ob es die Variable gibt und ob sie leer ist.
    mfg RudiS

    Kommentar


    • #3
      Musst die Session vorher starten (also im Login schon)
      Code:
      session_start();

      Kommentar


      • #4
        Nein dass muss er nicht (session_register()):
        Wenn session_start() nicht vor dieser Funktion aufgerufen wurde, erfolgt ein impliziter Aufruf von session_start() ohne Parameter. $_SESSION ahmt dieses Verhalten nicht nach und benötigt den Aufruf von session_start() bevor es verwendet wird.
        mfg RudiS

        Kommentar


        • #5
          SessionID in der URL VORSICHT

          http://www.phpfriend.de/ftopic16919.html
          http://www.phpfriend.de/ftopic17075.html

          Kommentar


          • #6
            Zitat von RudiS
            Nein dass muss er nicht (session_register()):
            Wenn session_start() nicht vor dieser Funktion aufgerufen wurde, erfolgt ein impliziter Aufruf von session_start() ohne Parameter. $_SESSION ahmt dieses Verhalten nicht nach und benötigt den Aufruf von session_start() bevor es verwendet wird.
            mfg RudiS
            OK! Danke!!

            Kommentar


            • #7
              session_start(); muss aufgerufen werden, bevor irgendwelche header gesendet werden, also im Kopf der Datei!

              Kommentar


              • #8
                @mistemef: Ja, das ist klar, aber es ging darum ob vor session_register() session_start() ausgeführt werden muss.
                @ulle: Du hast recht, es war auch nur eine Möglichkeit, falls Cookies deaktiviert sind.
                mfg RudiS

                Kommentar


                • #9
                  was ist dann der grund warum die daten nicht richtig uebermittelt werden?
                  oder passt bei mir was mit der abfrage nicht.

                  lg
                  michi

                  p.s. register globals sind bei mir auf off.

                  Kommentar


                  • #10
                    Also ich hab jetzt mal die erste Datei so abgeändert:
                    Code:
                    <?php
                      error_reporting(E_ALL);
                      session_start();
                      $_SESSION["user"] = "test";
                      header("Location: home.php");
                     ?>
                    und die zweite Datei so:
                    Code:
                    <?php
                      error_reporting(E_ALL);
                      session_start();
                      if (!empty($_SESSION["user"]))
                       {
                        echo "Erfolg";
                       }
                       else
                       {
                        echo "kein Erfolg";
                       }
                     ?>
                    Wenn ich das ausführe funktioniert alles. Falls es immer noch nicht geht, hast du vielleicht Cookies in deinem Browser ausgeschaltet.
                    mfg RudiS

                    Kommentar


                    • #11
                      danke RudiS - du warst mir eine wirklich grosse Hilfe.

                      so funktioniert es.
                      ich hatte:
                      Code:
                      if (isset($_SESSION["user"]))  {
                      lg
                      michi

                      Kommentar

                      Lädt...
                      X