Announcement

Collapse
No announcement yet.

mod_rewrite & sessions

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mod_rewrite & sessions

    Hallo,
    ich kämpfe mich grad durch ein forum was ich selber schreibe. ich verwende dabei mod_rewrite. Bisher habe ich das nie gemacht.
    Ich benutze Sessions umd Daten abzuspeichern, was auch nie ein Problem war.
    Nun mit dem mod_rewrite geht das net mehr. :-( zumindest funzt das net so recht.
    ich überprüfe erst ob die session registriert ist. wenn ja, dann soll der inhalt ausgegeben werden, wenn nein, dann wird das feld ersetzt mit dem hinweis das man nicht angemeldet ist.
    das komische ist, das die session registriert ist, aber das nichts "drin" ist. ich bekomme nichts angezeigt.
    Muss ich jetzt dadurch das ich mod_rewrite benutze meine sid überall an die URL anhängen?

    Gruß

    K.S.

  • #2
    Eben nicht. Dadurch, daß DU mod_rewrite nutzt sollte die SID automatisch an die Links angehängt werden. Wie sieht denn genau dein Code aus

    Comment


    • #3
      So wird die Session gespeichert:


      $userid= mysql_result($user,0,"nick");
      session_register("userid");

      $userid is nicht null, das hab ich getestet. Da steht dann nen Name drin.

      und das wenn ich die Session "wiederhaben will :-):<br>
      <pre><?php
      if (session_is_registered("userid"))
      {
      ?>
      <a href="#"><b><?php echo $userid;?></b></a><br>
      <br>
      } ?>
      </pre&gt

      Comment


      • #4
        Was sind denn bei Dir die Variablen $userid und $user? Wo ist denn dein Sessionkey? Ist $user dein Sessionkey? Irgendwie werde ich aus dem Codefragment nciht wirklich schlau

        Comment


        • #5
          $user = mysql_query("SELECT nick, passwort, id FROM $user WHERE nick='$nick'");

          Sessionkey is Userid.
          Name soll in userid gespeichert werden, um dann als session gespeichert zu werden. Später soll einfach name erstmal wieder angezeigt werden

          Comment


          • #6
            Wenn $userid dein Sessionkey ist, dann benutzt Du session_is_registered(<i>varname</i>) falsch, denn mit der Funktion prüfst Du, ob eine Variable mit dem Namen <i>varname</i> innerhalb einer Session gespeichert ist, nicht ob eine bestimmte Session existiert. Der obige Code müsste also lauten:<br /><br />
            <pre>
            if (session_is_registered("name"))
            {
            echo $_SESSION['name'];
            }
            </pre>
            <br />
            Mich beschleicht aber ein Verdacht. Wie erzeugst Du die Session und wie stellst Du die Session wieder her? poste mal den kompletten Code

            Comment


            • #7
              <?php<br>
              <br>
              $user = mysql_query("SELECT nick, passwort, id FROM $user WHERE nick='$nick'");<br>
              $nick= @mysql_result($user,0,"nick");<br>
              <br>
              if (mysql_affected_rows() != 1)<br>
              {<br>
              include("403.php");<br>
              } else {<br>
              $pass= mysql_result($user,0,"passwort");<br>
              if ($passwort == $pass)<br>
              { ?><br>
              <table width="100%" align="center" height="300"><br>
              <tr><br>
              <td align="center"><br>
              <?php <br>

              $userid= mysql_result($user,0,"nick");<br>
              session_register("userid");<br>
              ?><br>

              Hallo <?php echo $nick; ?><br>
              Du wurdest erfolgreich eingeloggt!

              </td>
              </tr>
              </table>
              <?
              } else {
              include("403.php");
              }

              }
              ?>
              <b>und</b>
              <?php
              if (session_is_registered("userid"))<br>
              {<br>
              ?> <br>
              <br>
              <br>
              <a href="#"><b><?php echo $userid;?></b></a><br>
              <br>
              Punkte:0000<br>
              Rang:
              <div align="right"><a href="index.php?open=logout">Logout</a></div>
              <?php
              } else { ?>
              <form action="index.php?open=login" method="post">
              <table width="100%">
              <tr>
              <td valign="bottom">Nick:</td>
              <td><input class="login" name="nick" ></td>
              </tr>
              <tr>
              <td>Pass:</td>
              <td><input class="login" name="passwort" type="password"></td>
              </tr>
              <tr>
              <td></td>
              <td><input type="submit" value="Anmelden" class="button"></td>
              </tr>
              </table>
              </form>
              <?php }?> </td&gt

              Comment


              • #8
                Könntest Du deinen Code bitte so posten, daß man ihn auch lesen und verstehen kann?<br />
                <br />
                $user = mysql_query("SELECT nick, passwort, id FROM <font style="color:red;font-weight:bold">$user</font> WHERE nick='$nick'");<br /><br />
                Wo kommt z.B. dieses $user her, welchen Wert hat es? Warum nutzt Du eine Variable als Tabellenname?
                Warum nutzt Du die Variable $nick und die Variable $userid für den selben Wert (mysql_result($user,0,"nick")) und warum machst Du 2 mal die Anfrage mysql_result()?<br />
                Was passiert genau wenn Du den Code laufen lässt? Was funktioniert genau nicht?<br />
                Welche Werte sollen noch in die Session, was passiert mit der Session?<br />
                Laß Dir doch bitte nicht alles aus der Nase ziehen

                Comment


                • #9
                  Oke, also ich habs jetzt so gemacht wie oben beschrieben, das geht. Gin aber vorher auch so, wie ich es beschrieben hatte. DANKE! :-

                  Comment


                  • #10
                    Sorry, ich dachte das es so klar währe. hat sich ja jetzt erledigt

                    Comment

                    Working...
                    X