Session wird nicht gespeichert

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

  • Session wird nicht gespeichert

    Guten Tag,

    Ich habe ein Problem mit Sessions.
    Auf einen lokalen xampp Server habe ich mir ein login script gebastelt, welches einwandfrei funktioniert.

    Nun habe ich das ganze auf einen Server hochgeladen und es funktinoniert leider nicht mehr so gut. Die PHP version auf dem Server ist 5.3.3.
    phpinfo spuckt folgendes raus (Bild ansehen - SuckMyPic - Image Hosting at its Best)
    Also session_start() habe ich überall gemacht wie gesagt lokal klappt es. Auch habe ich es auf einem anderen webspace hoster(square7) getestet, wo es auch funkioniert hat.

    Wenn ich den Code mal sehen wollt oder mehr infos bei der phpinfo() braucht, einfach schreiben .

    mfg
    Itachidhdr

  • #2
    Ohne Code ist das praktisch nicht nachvollziehbar. Ausser du findest hier zufällig jemanden, der genau dieses Problem schonmal hatte.

    Kommentar


    • #3
      1. Warum hast du Entwicklungs- und Produktivumgebung nicht gleich konfiguriert?

      2. Versuche mal zu debuggen, wo das Problem liegt. Wird die Session-ID nicht übertragen? Warum nicht?

      Kommentar


      • #4
        es funktinoniert leider nicht mehr so gut.
        Vermutlich schießt du irgendwo in deinem Code einen Bock.
        Wir werden alle sterben

        Kommentar


        • #5
          ok also
          @chorn hier einmal der Code zum einloggen

          Code:
          <?php
          ob_start();
          session_start();
          include "assets/php/mysql.php";
          
          if(isset($_SESSION['login'])){
              header("Status: 301 Moved Permanently");
              header("Location: home.php");
              exit;
          }else{?>
          
              <?php if(isset($_POST['user']) && isset($_POST['pw'])){
          
                  $user = $_POST['user'];
                  $pw = md5($_POST['pw']);
          
                  $ergebnis = mysql_query("SELECT * FROM user WHERE user = '$user'");
          
                  $row = mysql_fetch_object($ergebnis);
          
                  if($pw == $row->pw){
                      $_SESSION['login'] = $row->rights;
                      $_SESSION['user'] = $user;
                      $_SESSION['id'] = $row->id;
                      header("Status: 301 Moved Permanently");
                      header("Location: home.php");
                      exit;
                  }else{
                      header("Status: 301 Moved Permanently");
                      header("Location: index.php");
                      exit;
                  }
          
          
          
              } ?>
          
              <!DOCTYPE HTML>
              <html>
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <link rel="stylesheet" href="assets/style/style.css" type="text/css" media="screen" >
          
              <title>Ryuu!-Scans AdminPanel</title>
          
              </head>
          
              <body>
          
                  <header id="header">
                      <figure><h1>Login</h1></figure>
                  </header>
                  <div id="login">
                      <form action="index.php" method="post">
                          <table>
                              <tr>
                                  <td>Username: </td>
                                  <td><input type="text" name="user" autofocus="autofocus" required="required" placeholder="Username" /></td>
                              </tr>
                              <tr>
                                  <td>Passwort: </td>
                                  <td><input type="password" name="pw" required="required" placeholder="passwort" /></td>
                              </tr>
                              <tr>
                                  <td><input type="submit" value="Weiter" /></td>
                              </tr>
                          </table>
                      </form>
                  </div><!-- Ende login -->
                  <footer id="footer">
                      code by Itachidhdr
                  </footer>
          
              </body>
              </html>
          
          <?php }
           ob_end_flush();
          ?>
          und auf der home.php wird dann nur eine einfache if abfrage. (es kommt immer die ausgabe "doof")
          PHP-Code:
          <?php
          session_start
          ();

          echo 
          $_SESSION['login'];

          if(isset(
          $_SESSION['login'])){
              echo 
          "test";
          }else{
              echo 
          "doof";
          ?>
          @TobiaZ

          mein lokaler server ist der standart xampp server in der standart konfiguration. Der Server auf den ich es hochlade ist nicht mein eigener.

          Wenn ich die phpinfo vergleich im bereich Session gibt es unterschiede. Bei meinem Lokalen ist bei session.bug_compat_42 = on, session.bug_compat_warn = on und session.use_only_cookies = off. Könnte es daran liegen?

          EDIT: Hab mal die werde bei meinem Lokalen Server auf die selben wie dem eigentlichen Server gesetzt jedoch klappt der lokale weiterhin.
          Zuletzt geändert von Itachidhdr; 11.09.2012, 10:13.

          Kommentar


          • #6
            also der erste Bock, den ich bei dir gleich mehrfach sehe ...

            Header Location erwartet eine ABSOLUTE VOLL-QUALIFIZIERTE URL, keine relative Angabe wie bei dir ...
            [font=Verdana]
            Wer LESEN kann, ist klar im Vorteil!
            [/font]

            Kommentar


            • #7
              Hast du jetzt mal geprüft, wann/wie die Session-ID verloren geht?

              Kommentar


              • #8
                und mal so ganz nebenher .... HTML5 doctype, HTML5 Tags - und dann ? eine Tabelle um ein Formular zu layouten ... also 2012 Style gemischt mit 1990 Style ? .... *würg*
                [font=Verdana]
                Wer LESEN kann, ist klar im Vorteil!
                [/font]

                Kommentar


                • #9
                  @eagle275 und trotzdem klappen die Header Location was ein wunder.

                  @TobiaZ Also ich habe getestet. Nachdem die $_Session['id'] mit einem wert geschrieben wurde habe ich ein echo platziert und der gibt mit auch die richtige id aus. Sobald ich die Seite neulade ist dieser Wert allerdings weg, dass hab ich geprüft indem ich dasselbe echo auch direkt nach dem session_start platziert habe. Reicht das oder soll ich expliziet noch etwas teste?

                  Kommentar


                  • #10
                    durchsuche bitte sämtliche deine Scripte nach Programmzeilen, die deine SessionVariablen löschen können , dann baust du direkt dahinter ein echo __LINE__; - damit sollte auf deiner Webseite irgendwann diese Zeilennummer auftreten, so dass du weißt WELCHE Anweisung deine Session-Daten gekillt hat. Dann musst du nur noch beheben, dass der Code an dieser Stelle in deinem Kontext aufgerufen wird

                    ich hatte bei mir auch mal so ein Problem, dass die Session-Daten wegwaren - aber nur weil mein Script durch den Code zum löschen der Session-Daten durchrannte, wenn es gar nicht erlaubt war ...

                    Zum Thema header-Location funktioniert trotzdem .. das mag sein und ist schön für dich - aber es SOLL eine absolute URL sein - sagt das PHP-Manual und auch das HTTP-Protokoll
                    [font=Verdana]
                    Wer LESEN kann, ist klar im Vorteil!
                    [/font]

                    Kommentar


                    • #11
                      Ok also ich habe in der zwischenzeit mal ein kleines session beispiel gebastelt

                      test1:
                      PHP-Code:
                      <?php
                      session_start
                      ();

                      $_SESSION['test'] = "asdf";

                      echo 
                      $_SESSION['test'];
                      ?>

                      <a href="test2.php">test2</a>
                      test2:
                      PHP-Code:
                      <?php
                      session_start
                      ();

                      echo 
                      $_SESSION['test'];

                       
                      ?>

                       <a href="test1.php">test1</a>
                      Dieser code ist etwas übersichtilicher... .

                      Also auf der Seite test2 gibt es keine ausgabe wenn ich das script auf dem server aufrufe. Also ich sehe so nichts, wass meine session killen könnte :/.
                      Im httpdocs Ordner auf dem Server liegen jetzt nur noch die 2 datein.

                      Und ja mit den Headern hast Recht, aber da es so erstmal klappt wollte ich zuerst das Session Problem lösen.

                      Kommentar


                      • #12
                        Schon mal geprüft, ob PHP im Session-SavePath überhaupt Schreibrechte hat?
                        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                        Schön - etwas Geschichte kann ja nicht schaden.
                        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                        Kommentar


                        • #13
                          ja .. session-Safepath und überhaupt sämtliche Einstellungen zu sessions prüfen

                          schau mal was du bei
                          PHP-Code:
                          <?PHP
                          phpinfo
                          ();
                          bekommst, wenn du es auf deinen Webserver packst und aufrufst ..
                          [font=Verdana]
                          Wer LESEN kann, ist klar im Vorteil!
                          [/font]

                          Kommentar


                          • #14
                            Wenn du doch schon weißt, dass deine SID nicht übergeben wurde, warum sorgst du dann nicht dafür, dass sie übergeben wird.

                            trans_sid ist ja off, also musst du selbst dafür Sorge tragen.

                            Kommentar


                            • #15
                              @TobiaZ

                              Soweit ich ihn verstanden habe, hat er nur eine Session-Variable mit dem Namen 'id' gesetzt und wollte sie wieder ausgeben.

                              Ich glaube nicht, dass es sich dabei um die SID gehandelt hat.
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X