login script - welcher user?

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

  • login script - welcher user?

    Hallo zusammen,

    Ich habe hier auf der Seite folgendes Tutorial gelesen:
    http://www.php-resource.de/tutorials/read/38/1/

    Ich habe dies so weit wie möglich meinen vorstellungen angepasst nur eine Sache bleibt noch bei der ich nicht mehr weiter komme.

    Ich möchte das sich sowohl normale User als auch ein Admin sich über den selben login anmelden können. Beim anmelden des Admins soll aber eine andere Seite geladen werden.

    Nun die Frage, wie kann ich feststellen welcher User sich angemeldet hat?

    Viele Grüße,
    Thomas

  • #2
    Indem du eine Spalte in der DB einfügst und dort den Benutzerlevel einträgst. Dann überprüfst du, ob der User, der sich einloggt, den Benutzerlevel eines Admins hat und leitest ihn per header() weiter
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      wie kann ich denn überprüfen was in dieser eigenschaft drin steht?
      also ich hab jetz ne neue spalte gemacht die IsAdmin heißt

      wenn der weit 1 ist dann ist es ein admin und wenn der wert 0 ist dann ist es keiner.

      aber wie kann ich beim login feststellen ob dieser wert 1 ist oder nicht?

      Kommentar


      • #4
        mysql_query benutzen.

        Aber am besten, du suchst dir ein ordentliches Buch und lernst damit PHP - "mal eben so" ist da nämlich nicht, denn damit kannst du dir ordentlich Ärger einhandeln, wenn du gehackt wirst, was rapp-zapp gehen kann, wenn du nicht aufpasst...
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          hmm da hast du wohl recht

          das sollte zwar keine weit verbreitete homepage werden ^^ aber von den 20 leuten die da ab und zu mal drauf schauen sollen halt nur 5 in den gesicherten bereich kommen :P

          naja ich werd mal sehen ob ich mir so ein buch kaufe weil ob sich das lohnt für die kleinigkeit?!

          naja danke trotzdem

          Kommentar


          • #6
            Ob es sich lohnt oder nicht: Hast du Spaß daran und möchtest du evtl. noch mehr programmieren? Oder ist es für dich eher lästig dich damit zu beschäftigen und du willst nur den Zweck und eigentlich interessiert es dich alles garnicht?
            Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
            var_dump(), print_r(), debug_backtrace und echo.
            Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
            Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
            Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

            Kommentar


            • #7
              also spaß macht es schon, aber ob ich das oft brauchen werde ist die andere frage :P

              ich denke aber schon das ich mir ein buch bestellen werde, dann hab ich imemr was wo ich wieder nachlesen kann

              Kommentar


              • #8
                ich hab mir nun doch einmal folgenden code zusammen geschnippselt:

                PHP-Code:
                function isadmin()
                {
                    
                $sql="SELECT UserId
                    FROM users
                    WEHRE UserSession='"
                .session_id()."' AND IsAdmin='1'";
                    
                $resultmysql_query($sql) or die(mysql_error());
                    return ( 
                mysql_num_rows($result)==1);

                dazu möchte ich noch sagen, ich habe in der Datenbank bei dem User der Admin sein soll den Wert 1 in der Spalte "IsAdmin" hinzugefügt.

                Trotzdem funktioniert dieser code nicht, es erscheint folgender fehler:

                You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UserSession='#########' AND IsAdmin='1'' at line 3


                die idee habe ichmir von der überprüfung abgeschaut ob ein user eingeloggt ist oder nicht also der funktion:

                PHP-Code:
                function loggedin()
                {
                    
                $sql="SELECT UserId
                    FROM users
                    WHERE UserSession='"
                .session_id()."'
                    LIMIT 1"
                ;
                    
                $resultmysql_query($sql);
                      return ( 
                mysql_num_rows($result)==1);


                liegt es an der 1 in dem obigen code?

                Kommentar


                • #9
                  Der Fehler liegt fast immer kurz vor der Stelle, die angegeben wird.

                  Und jetzt schaust du dir deine Query noch mal an - und überlegst dann, wie genau der Engländer Wo? fragt ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    ich bin sicher es liegt an IsAdmin='1'
                    aber wie kann ich denn prüfen was in is admin drin steht?

                    Kommentar


                    • #11
                      Original geschrieben von XanaX
                      ich bin sicher es liegt an IsAdmin='1'
                      Nein, tut es nicht.

                      Ich sagte doch - mit an Sicherheit grenzender Wahrscheinlichkeit kannst du, wenn MySQL was von "the right syntax to use near ..." sagt, davon ausgehen, dass der Fehler kurz vor der angegebenen Stelle liegt.
                      Und wo liegt dein IsAdmin='1'? Eben, weiter hinten.

                      Ich wiederhole es noch mal: Wie fragt der Engländer Wo?
                      (Noch expliziter: Wie schreibt er es?
                      Vermutlich richtig, im Gegensatz zu dir.
                      Jetzt aber mal Augen aufmachen, für noch mehr Zaunpfähle ist Holz zu teuer.)
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        WEHRE aufmerksam liest ist klar im Vorteil!

                        Kommentar


                        • #13
                          hmm ich habe das problem nun gelöst, ganz verwundert darüber das der fehler an fehlenden einzel-anführungsstrichen um users lag :S

                          kann mir denn jetzt noch jemand erklären wieso bei

                          PHP-Code:
                          function isadmin()
                          {
                              
                          $sql="SELECT UserId
                              FROM [B]users[/B] 
                              WEHRE UserSession='"
                          .session_id()."' AND IsAdmin='1'";
                              
                          $resultmysql_query($sql) or die(mysql_error());
                              return ( 
                          mysql_num_rows($result));

                          anführungsstriche drum sein müssen und bei


                          PHP-Code:
                          function loggedin()
                          {
                              
                          $sql="SELECT UserId
                              FROM users
                              WHERE UserSession='"
                          .session_id()."'
                              LIMIT 1"
                          ;
                              
                          $resultmysql_query($sql);
                                return ( 
                          mysql_num_rows($result)==1);

                          nicht?

                          Kommentar


                          • #14
                            Man eh, jetzt komm mal ausm Mustopp, so begriffstutzig kann einer alleine doch gar nicht sein!

                            weHre ist etwas anderes als wHere

                            Kommentar


                            • #15
                              Original geschrieben von onemorenerd jetzt komm mal ausm Mustopp, ...
                              OffTopic:
                              watt is datt denn ... neugierig fragt
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X