frage zum schönes UserManagement

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

  • #46
    Original geschrieben von manuelakersten
    Hat zufällig jemand das Script fertig gestellt und im Betrieb ?
    postest du jetzt bei jedem code-schnipsel, der mit login was zu tun hat, immer das gleiche?

    lies dir im ersten post alles durch und es funktioniert. wozu sollte jemand das für dich machen?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #47
      Hi ,

      sorry das ich jetzt nochmal zu diesem Login-Script poste. Ich bin nur gerade echt am verzweifeln. Ich habe das gesamte Script eingebunden.
      Auf localhost funzt alles prima. Hab alles rundherum programmiert und freue mich schon auf den upload zu meinem Webhoster. Und tataaa, er gibt mir folgende Fehlermeldung:

      PHP-Code:
      Warningmysql_fetch_array(): supplied argument is not a valid MySQL result resource
      in 
      /var/www/l3s4480/html/testtest/admin/includes/usermanagment.inc.php 
      on line 9

      Warning
      Cannot modify header information headers already sent by (output started 
      at 
      /var/www/l3s4480/html/testtest/admin/includes/usermanagment.inc.php:9
      in /var/www/l3s4480/html/testtest/admin/includes/usermanagment.inc.php 
      on line 13 
      Offline funktioniert alles. Jetzt habe ich noch die unveränderten Daten von Abraxax hochgeladen und er gibt mir die gleiche Meldung.
      Mein ISP hat die PHP Version 4.3.2. Ich poste gerne weitere Daten falls sie helfen, bin im moment nur etwas ratlos.

      Danke schonmal!
      Zuletzt geändert von Abraxax; 15.10.2003, 19:54.

      Kommentar


      • #48
        ich habe mal ein paar umbrüche in deine meldungen gemacht...

        so. zeile 9 ist ja die query. da ist auch ein mysql_error() dabei. der müsste was ausgeben, wenn du z.b. keine tabelle da angelegt hast. -> prüfen.

        hast du die DB connected? also die passenden zugangsdaten deines hosters eingetragen? -> prüfen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #49
          Man man man,

          gibts hier eigentlich jemanden der schneller Antworten postet als du? Finde ich echt super! Hätte aber selber drauf kommen müssen, na ja, bin noch Anfänger und jetzt weiß ich wenigstens, dass mysql_error() zu einem sehr guten Freund wird .

          Das Problem ist gelöst, es lag an der Tabellenbezeichnung. Aus deinem SQL-Insert im Code-Schnipsel erzeugt er die Tabelle adminuser, im Code greift er aber immer auf AdminUser zu. Local funktionierte es noch, mein ISP fängt da aber an Case-Sensitiv zu werden .

          Mir ist gerade nur eine neuer Fehler aufgefallen. Ich möchte ja nicht nerven, denn genau das gleiche Problem hatte zuvor auch jemand. Kurz gesagt der Logout funktioniert nicht. Er ruft die Logout-Funktion nicht auf. Ich vermute es liegt an dem von Dir geposteten Logout-Formularfeld:

          PHP-Code:
          <a href="index.php?action=logout">Logout<br><?php echo $userinfo[Vorname]." ".$userinfo[Name]; ?></a>
          action ist hier =logout gesetzt. Ich frage mich ob das korrekt ist? Die Funktion heißt doch UserLogout. Korrigiere mich, falls ich da was mißverstanden habe.

          Danke nochmal für die schnelle Hilfe!

          Kommentar


          • #50
            jo. das stimmt. ich antworte meistens fix...

            das mysql_error() stand doch in meinem code drin. hast du das etwas entfernt? -> böse!

            und zum logout .... in der index.php ist win switch(). dort wird natürich dann die korrekte fkt aufgerufen. oder hast du an dem switch() auch gebastelt?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #51
              Jo stimmt, hab ich übersehen. Aber ich habe nur eine Sache an dem gesamten Originalcode geändert. Ich denke nicht, dass dies dafür verantwortlich ist. Bitte nicht schlagen wenn doch .

              Ich habe die Tabelle AdminUser um Felder erweitert, um die separaten Rechte festlegen zu können:

              PHP-Code:
              <?php

              /***
                * Prüfen, ob der User berechtigt ist, einen Login durchzuführen.
                */

                
              function CheckUserLogin ($un$pw$session) {
                  
              $result mysql_query("SELECT UserId,Name,Vorname,email,UserName,
              UserPasswd,rights_admin,rights_news,
              rights_veran,rights_links,rights_guestbook
              ,rights_user 
              FROM AdminUser 
              WHERE UserName='
              $un
              AND UserPasswd=MD5('
              $pw')") or mysql_error();
                  
              $zeile mysql_fetch_array($result);

                  if ( 
              $zeile["UserId"] == "" )
                  {
                    
              header ("Location: index.php");
                  }
                  else
                  {
                    
              $result mysql_query("UPDATE AdminUser 
              SET UserSession = '"
              .$session."',UserLogin = NOW() 
              WHERE UserId = '"
              .$zeile["UserId"]."'") or mysql_error();
                    
              header ("Location: admin.php");
                  }
                }


              /***
                * LOGOUT
                */

                
              function UserLogout ($session) {
                  
              $result mysql_query("UPDATE AdminUser 
              SET UserSession = NULL 
              WHERE UserSession = '"
              .$session."'") or mysql_error();
                  
              header ("Location: index.php");
                }


              /***
                * Prüfen, ob die Session in Ordnung ist.
                */

                
              function CheckUserSession ($session) {
                  
              $result mysql_query("SELECT UserId,Name,Vorname,email,
              UserName,UserLogin,rights_admin,
              rights_news,rights_veran,rights_links,
              rights_guestbook,rights_user 
              FROM AdminUser 
              WHERE UserSession = '"
              .$session."'"
              or 
              mysql_error();
                  if ( 
              mysql_num_rows($result) == ) {
                    
              $zeile mysql_fetch_array($result);
                    
              $sessarr[UserId]    = $zeile["UserId"];
                    
              $sessarr[Name]      = $zeile["Name"];
                    
              $sessarr[Vorname]   = $zeile["Vorname"];
                    
              $sessarr[email]     = $zeile["email"];
                    
              $sessarr[UserLogin] = $zeile["UserLogin"];
                    
              $sessarr[rights_admin] = $zeile["rights_admin"];
                    
              $sessarr[rights_news] = $zeile["rights_news"];
                    
              $sessarr[rights_veran] = $zeile["rights_veran"];
                    
              $sessarr[rights_links] = $zeile["rights_links"];
                    
              $sessarr[rights_guestbook] = $zeile["rights_guestbook"];
                    
              $sessarr[rights_user] = $zeile["rights_user"];
                    return 
              $sessarr;
                  }
                  else {
                    
              header ("Location: index.php");
                    return 
              false;
                  }
                }

              ?>
              Aber ich habs eben auch mit dem Originalcode probiert. Er löscht einfach nicht die Session aus der DB. Ich geh jetzt erstmal ne Runde steppen. Ich hoffe du kannst mir da nochmal weiterhelfen, wenn ich wiederkomme setz ich mich sofort wieder ran!
              EDIT:
              Code umgebrochen
              Zuletzt geändert von TobiaZ; 01.10.2006, 14:16.

              Kommentar


              • #52
                das mit den rechten kann man zwar besser amchen, aber ich sehe spontan keinen fehler.... muss jetzt aber auch mal wech....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #53
                  Ich hab jetzt nochmal deinen Original-Code 100%ig 1:1 kopiert, die SQL-Anweisungen neu ausgeführt und alles nochmal durchlaufen lassen. Wie gesagt, es ist jetzt das Original-Beispiel ohne jegliche Änderung. Hab es local und auf meinem ISP laufen lassen. Er löscht einfach nicht die Session_id. Die Funktion logout wird meiner Meinung nach nicht aufgerufen bei dem Original-Beispiel.

                  Funktioniert der Original-Code wirklich bei allen? Ich meine der Fehler fällt ja nicht wirklich auf. Ich würde mich freuen wenn jemand den Original-Code nochmal bei sich testet und prüft, ob die Session_id beim logout NULL gesetzt wird. Wenn ja, geb ich mich geschlagen, dann hab ich absolut keine Peilung warum der das hier nicht macht.

                  Kommentar


                  • #54
                    alles klar. ich habe noch einmal geschaut. action=logout war im script noch als POST definiert. daher konnte das nciht mehr funktionieren, nachdem ich das auf die superglobals umgeschrieben (und nicht getestet) hatte. *ascheaufmeinhaupt*

                    bei den CS habe ich das nun entsprechend angepasst, sodass es laufen sollte..
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #55
                      Yiipiiiiiiii,

                      jetzt funzt alles einwandfrei! Hätte ich auch selber sehen müssen, aber na ja, aller Anfang ist schwer.

                      Thx alot!

                      Kommentar


                      • #56
                        alles klar. bittesehr...
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #57
                          Rechtesystem

                          Habe mir gerade mal das Rechtesystem von Payne_of_Death
                          angeschaut, habe da aber zwei probs.
                          1. Wie genau muss ich die tabelle erweitern
                          2. Wie binde ich die function denn in meine seite ein, wenn ich z.b. nen menü für gewisse user sperren will

                          Kommentar


                          • #58
                            Gar nicht.....

                            dieses kleine Schnippselchen verhindert nur das Scripte ohne z.B. Usermanagment oder Leute ohne Berechtigung dieses aufrufen können......

                            Um einzelne Menüpunkte auszublenden musst du ganz einfach um die Ausgabe eine Bedingung schreiben die einen boolean Wert abfrägt und erst dann anzeigt wenn dieser true ist.....

                            Nun stellst du die DB am besten so um das du eine Berechtigungsgruppe für z.B. Menü erstellst und dazu dann lauter Felder was berechtigt werden kann.

                            Aus der DB holst du dir am besten über mysql_assoc_array
                            zuerst die Berechtigungsgruppe und dazu dann als weiteres alle Berechtigungen.....
                            z.B. sieht es dann so aus
                            PHP-Code:
                            $temp_rankings['menu']['Home']
                            $temp_rankings['menu']['Home']
                            $temp_rankings['gb']['post']
                            $temp_rankings['gb']['edit'
                            Dann vergibst du oder ermittels anhand des Filenamens eine Script_Id z.B. für Menü.
                            Dort frägst du dann über das erhaltene rankings array ab ob true oder false und zeigst es so an oder net.
                            Aber die dahinterliegende Funktionen nicht vergessen mit abzuschalten

                            Das ist alles.........
                            [color=blue]MfG Payne_of_Death[/color]

                            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                            [color=red]Merke:[/color]
                            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                            Murphy`s Importanst LAWS
                            Jede Lösung bringt nur neue Probleme
                            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                            Kommentar


                            • #59
                              ich hab da och noch mal ne frage wenn ich einen user neu anlege wird ja das password per md5 einweg verschlüsselt. was mach ich den wenn der user sein password vergisst -> muß ich es im ja irgendwie schicken können, nu isses aber verschlüsselt? oder leg ich einfach noch ne spalte mit dem passwort an aber unverschlüsselt? oder ist das keine gute idee?

                              Kommentar


                              • #60
                                so wird das normalerweise gemacht....


                                generiere ihm ein neues passwort , schicke ihm das und trage es in der DB mit MD5() ein.
                                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                                Kommentar

                                Lädt...
                                X