kostenloser Webspace werbefrei: lima-city


Login Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    Hi,

    ich bastel derzeit an einem Login Systhem, weil ich nichts besseres zu tun habe^^

    hier das Login Skript:

    <?php
    
    $pass=$_POST[\'pass\'];
    $t_pass=\"irgendwas\";
    
    if ($pass == $t_pass) {
      session_start();
      $_SESSION[\'logged\'] = true;
      echo \"Sie wurden erfolgreich eingeloggt!<br/>\";
      echo \"<a href=\\\"index.php?p=options\\\">Weiter</a>\";
    }
    else {
      include(\"login_error.php\");
    }
    
    ?>


    Überprüft wird in jeder Datei so, ob man eingeloggt ist:

    <?php
    
    session_start();
    if (!isset($_SESSION[\'logged\']) || !$_SESSION[\'logged\']) {
      include(\"login_error.php\");
      exit;
      }
    
    ?>


    (das ist die Datei check.php, die in den geschützen Seiten eifach per include(\"check.php\"); eingebunden wird.

    Wieso kann ich jetzt in der index.php nicht unterscheiden, ob ich eingeloggt bin oder nicht? Der merkt das irgendwie nicht. Index.php:

    <html>
    <head>
    <link rel=\"stylesheet\" href=\"style.css\" type=\"text/css\">
    </head>
    <body>
    <table>
      <tr>
        <td>
        <a href=\"index.php?p=home\">Home</a>
        <?php if (!isset($_SESSION[\'logged\']) || !$_SESSION[\'logged\']) { echo \"<a href=\\\"index.php?p=login\\\">Login</a>\"; } else { echo \"<a href=\\\"index.php?p=logout\\\">Logout</a>\"; } ?>
        </td>
      </tr>
      <tr>
        <td>
          <?php
            if(isset($_GET[\'p\'])) {
              $p=$_GET[\'p\'];
              include($p.\".php\");
            }
          ?>
        </td>
      </tr>
    </table>
    </body>
    </html>


    Ich habe das Login-Systhem erstmal nur mit Passwörtern gebaut, nachher erweiter ich es.

    Danke!

    Yazurah
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. also so wie dein q-text aussieht müsste das eigentlich klappen, vlt liegt es daran dass man php immer wieder neu ausführen muss, damit der browser mekrt dass sich ne variable geändert hat. wo genau liegt denn das probelm und was wird in der ausgeführten datei index.php angezeigt?
  4. Du hast in deiner index.php kein session_start() stehen (zumindest nicht in dem Beispiel da oben), dann kann er die Sessionvariable auch nicht finden.
  5. Achtung bei Session immer beachten das am Anfang vom Script, bevor du überhaupt das html beginnts.
    zb.
    session_start();//dieser teil gehört als aller ersters


    $x = 35; //kann überall stehen
    $_session[\'x\'] = $x; //bindet die Variable x ein


    Beitrag geändert: 20.3.2008 15:26:28 von manuel-seidl
  6. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    Oh Mann. Sowas hätte ich finden müssen... Liegt wohl daran, dass ich erst das Skript alleine geschrieben hab und es danach ohne nachzudenken index.php mit GET eingebunden habe...

    Danke.

    Yazurah
  7. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    Hi,

    noch eine Frage dazu:

    ich hab jetzt hinzugefügt, dass der auch noch auf die User achtet. Und wenn das richtig ist, dann wird das ausgeführt:

    $_SESSION[\'logged\'] = true;


    Aber ich brauche auf einer anderen Seite auch noch den Namen, des eingeloggten Users. Daher habe ich dadrunter direkt $_SESSION[\'name\'] = $t_user; gesetzt. Damit wird der eingeloggte User in $_SESSIONS[name\'] eingetragen.

    Auf der anderen Seite lese ich es so wieder aus:

    $nick=$_SESSIONS[\'name\'];


    Wieso gibt der mir nicht aus?

    Danke!

    Yazurah
  8. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.



    $_SESSION[\'logged\'] = true;
    du willst überprüfen ob true ist oder?
    jetzt weist du den Wert zu, da du nur ein = hast


    Nein! Ich will wissen, welcher User eingeloggt ist!

    if ($pass == $t_pass) {
      session_start();
      $_SESSION[\'logged\'] = true;
      $_SESSION[\'name\'] = $t_user;
      echo \"Sie wurden erfolgreich eingeloggt!<br/>\";
      echo \"<a href=\\\"index.php?p=options\\\">Weiter</a>\";
    }
    else {
      include(\"login_error.php\");
    }


    Ich habe hier $_SESSION[\'name\'] = $t_user; hinuzgefügt, um in dieser Sessions zu speichern, WER eingeloggt ist und nicht OB jemand eingeloggt ist. Aber der Wert dieser Variablen wird nicht an die anderen Dateien weitergegeben...

    Yazurah
  9. Wenn du wirklich $nick=$_SESSIONS[\'name\']; geschrieben hast, dann kann er es nicht finden, weil es die Variable $_SESSIONS nicht gibt.
    Der Zugriff auf Sessionvariablen erfolgt auch mit $_SESSION[\'name\'], in deinem Fall also $nick=$_SESSION[\'name\'];, dann sollte es gehen.
  10. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    Wenn du wirklich $nick=$_SESSIONS[\'name\']; geschrieben hast, dann kann er es nicht finden, weil es die Variable $_SESSIONS nicht gibt.
    Der Zugriff auf Sessionvariablen erfolgt auch mit $_SESSION[\'name\'], in deinem Fall also $nick=$_SESSION[\'name\'];, dann sollte es gehen.


    Da fragt man sich immer, wieso man die einfachsten Sachen übersieht^^

    Danke!

    Yazurah
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!