Login/Memberbereich mit Sessions

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

  • Login/Memberbereich mit Sessions

    Hallo, danke erstmal für das sehr gute Tutorial.

    Hier meine frage:

    In dem Tutorial wird unter anderem ein Level-wert abgefragt.
    Ich möchte so etwas ähnliches machen. Und zwar folgendermaßen.

    Ich habe verschieden User-Typen (z.B. User,Admin)
    Der User soll nur gewisse dinge bearbeiten können, während der Admin mehrere Dinge sehen können darf.

    Wie prüfe ich denn? Im tutorial steht was von if (! session_is_registered('username'))

    geht das auch mit Level? Wenn ja wie mache ich die Überprüfung auf User/Admin?

  • #2
    wie du im manual lesen kannst, ist session_is_registered() veraltet. darüber hinaus wäre der generelle umgang mit sessions für dich interessant.

    speicher einfach den Typ (z.b. 1 für user, 2 für admin) in der session. dann kannst du den wert ganz einfach über das $_SESSION-Array abfragen. Fertig.

    Kommentar


    • #3
      ...

      Also ich check das immernoch nicht so ganz mit den Sessions.

      ich setze die Session:
      session_register('user_typ');

      Und wie kann ich dann die überprüfung machen ob User(1) oder Admin(2) ist?

      Kommentar


      • #4
        Mach mal

        PHP-Code:
        echo $_SESSION["user_typ"]; 
        nach dem register.. Dann weisst du was TobiaZ meint.

        EDIT:

        Anstatt session_register kannst du bzw. solltest du

        $_SESSION["user_typ"] = "wert";

        benutzen

        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          ?

          habe jetzt
          session_register('log_typ');
          echo $_SESSION["log_typ"];

          Da wird aber nichts ausgegeben!

          Kommentar


          • #6
            ja, und wegen session_register() liest du bitta auch mal nach, wie veraltet die funktion ist.

            Kommentar


            • #7
              hab ich ja...

              ...ich hab nachgeschaut.

              bei php.net steht auch nur dass es veraltet ist, aber wie man es machen soll. steht natürlich nicht. zumindest nicht so dass es verständlich ist.

              ich glaub ich gebs auf

              LOGIN-SEITE:
              PHP-Code:
              .....
              }else{
                  
              $password md5($password);
                  
              $query = @mysql_query("SELECT spitzname,user, pass, login_typ FROM spieler WHERE user = '".$_POST['username']."' LIMIT 1");
                  
              $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zur&uuml;ck</a></p>');
                  if (
              mysql_errno()) { die("MySQL sagt:<BR>"mysql_error() ."<BR>Query:<BR>"$query);}
                  
              $log $result['login_typ'];
                  if(
              $password != $result['pass']){
                      echo 
              '<form action="index2.php" method="post">';
                      echo 
              '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
                      echo 
              '<input type="hidden" name="username" value="'.$_POST['username'].'">';
                      echo 
              '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
                      echo 
              '</form>';
                      die;
                  }else{
                      
              $log $result['user'];
                      
              $user $result['user'];
                      
              $_SESSION["spitzname"] = $log;
                      
              printf("Login erfolgreich: <a href=\"./admin/index.php?sid=$log\">weiter</a>");
                      }


              ADMIN-SEITE:
              PHP-Code:
              <?
              session_start();
              if(!session_is_registered('spitzname') || $_SESSION['spitzname'] == "") { 
              header("location:../index2.php"); 
              die; 

              $dbHost = "localhost";
              $dbUser = "bla";
              $dbPass = "bla";
              $dbName = "bla";

              $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
              $selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank <b>$dbName</b> nicht ausw&auml;hlen!");
              ?>
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
              <html>
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
              <link rel="stylesheet" type="text/css" href=".././css/style.css">
              <title></title>
              </head>

              <body>
              <table width="700"  border="0" cellspacing="0" cellpadding="0">
              ...
              ...
              ...
              <?php
              $query 
              = @mysql_query("SELECT * FROM spieler WHERE spitzname = '$sid' LIMIT 1");
              $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zur&uuml;ck</a></p>');
              if (
              mysql_errno()) { die("MySQL sagt:<BR>"mysql_error() ."<BR>Query:<BR>"$query);}
              if (
              $result['log_typ']==4
              {
              printf("
              ...
              Zuletzt geändert von japetos; 25.07.2006, 18:56.

              Kommentar


              • #8
                bei php.net steht auch nur dass es veraltet ist, aber wie man es machen soll. steht natürlich nicht. zumindest nicht so dass es verständlich ist.


                Was steht da nicht?


                PHP-Code:
                $barney "A big purple dinosaur.";
                session_register("barney");

                // Ab PHP 4.1.0 ist die Verwendung von $_SESSION vorzuziehen
                $_SESSION["zim"] = "An invader from another planet."
                Ok in diesem Beispiel hätte man

                PHP-Code:
                $_SESSION["barney"] = "A big purple dinosaur."
                schreiben sollen.

                Außerdem nutzt du immer noch session_is_registered anstatt die Hilfestellung, die dir gegeben wird, mal zu benutzen.

                PHP-Code:
                // z.B
                if(!session_is_registered('spitzname') || $_SESSION['spitzname'] == "") { // veraltet } 
                PHP-Code:
                if (!empty($_SESSION["spitzname"]) { // Schon kürzer oder? } 
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  !!!

                  Habs hinbekommen!
                  Genauso wie ihr es gesagt habt!!!

                  Vielen,vielen Danke nochmal.

                  Jetzt hab ichs auch kapiert!!!

                  Kommentar

                  Lädt...
                  X