Frage zu UserManagment

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

  • Frage zu UserManagment

    Hi!

    Ich hab ein Problem mit dem UserManagement ausm Code Geschnipsel!

    Hab mir die dateien alle erstellt und die session wird auch im tmp verzeichniss gespeichert.

    Beim Aufruf der index.php erhalt ich das Eingabeformular für Usernamen und Passwort.

    Desweiten hab ich einen User angelegt (mit dem Insert-Befehl aus dem Code-Geschnipsel Thread).

    Wenn ich nun username und userpasswort in das anmeldeformular eingebe und login drücke, dann erscheint folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at c:\programme\apache group\apache\htdocs\usermanagment.inc.php:52) in c:\programme\apache group\apache\htdocs\usermanagment.inc.php on line 15

    Komm bei diesem Fehler trotz intensiver suche einfach nicht weiter!

    Kann mir jemand helfen?!?

    Gruß Flo

  • #2
    die fehlermeldung sagt es eigentlich schon! es wird versucht eine Information im Header zu senden, aber es wurde beireits eine Ausagabe gemacht!

    Kommentar


    • #3
      Der Anfang meiner usermanagment.inc.php sieht folgendermaßen aus:

      PHP-Code:

      <?php


        
      function CheckUserLogin ($un$pw$session) {
          
      $result mysql_query("SELECT UserId,Name,Vorname,UserName,UserPasswd 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
        */
      In Zeile fünfzehn steht: "header("Location:admin.php");

      Ich kann keine Ausgabe davor entdecken!? Ausgabe wird doch nur mittels 'echo' gemacht, oder?!?!

      Kommentar


      • #4
        kommt noch ne andere Fehlermeldung ??

        Kommentar


        • #5
          Nein, das ist die einzige Fehlermeldung!!??

          Kommentar


          • #6
            Re: Frage zu UserManagment

            Original geschrieben von karibikjoe
            Komm bei diesem Fehler trotz intensiver suche einfach nicht weiter!
            du hast eine ausgabe zuvor gemacht.

            entweder hast du das UM irgendwo included oder nicht gemäß meiner anleitung angewendet.

            oder du hast vor z.b. <?php einen zeilenumbruch oder ein leerzeichen stehen.

            vor header() darf KEINERLEI ausgabe an den browser erfolgen.
            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


            • #7
              es dreht sich doch hier alles um die usermanagment.inc.php! Hab ich das schon richtig verstanden!?!?

              In dieser Datei (usermanagment.inc.php) steht vor dem <?php kein Leerzeichen oder Absatz! Und es wird in dieser datei auch nichts included!

              Kannst du dir mal den Quelltext (siehe oben) der usermanagment.inc.php ansehen?
              Hab ihn eigentlich nur aus dem code-geschnipsel kopiert und daran nichts verändert!?



              Danke, Gruß Flo

              Kommentar


              • #8
                und wie sieht deine index.php bzw deine admin.php aus?

                da dürfen vor dem include der usermanagment.inc.php auch keinerlei ausgabe erfolgen! siehe code-schnipsel mein beispiel.
                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


                • #9
                  Ich denk das hab ich eingehalten:

                  Hier der Anfang der index.php
                  PHP-Code:

                  <?php session_start();

                    include(
                  "connect2db.inc.php");
                    include(
                  "usermanagment.inc.php");

                    switch(
                  $action) { ............

                  Und der Anfang der admin.php

                  PHP-Code:

                    <?php

                    session_start
                  ();
                    include(
                  "connect2db.inc.php");
                    include(
                  "usermanagment.inc.php");

                    
                  $userinfo CheckUserSession(session_id());
                  Vor derm <?php befindet sich in beiden Dateien kein Leerzeichen oder keine Leerzeile!! Spielt es eine Rolle, wenn davor die connect2db.inc.php included wird? Das ist doch eigentlich keine Ausgabe und außerdem im PHP Tag!??

                  Kommentar


                  • #10
                    Original geschrieben von karibikjoe
                    Ich denk das hab ich eingehalten:
                    [...]

                    Spielt es eine Rolle, wenn davor die connect2db.inc.php included wird? Das ist doch eigentlich keine Ausgabe und außerdem im PHP Tag!??
                    zu letzterem kann ich sagen, dass es ok ist, wenn dort wirklich KEINERLEI ausgaben sind. aber womöglich hast du dort noch was vor dem <?php drin stehen. schaue einfach noch einmal genau nach.

                    notfalls kannst du auch mal das ding posten.

                    noch einmal. ein leerzeichen und zeilenumbruch gelten aus ausgabe.

                    und hier habe ich noch was gefunden.
                    (output started at c:\programme\apache group\apache\htdocs\usermanagment.inc.php:52
                    was steht in zeile 52 der user...inc.php?
                    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


                    • #11
                      pipifax

                      Kommentar


                      • #12
                        Ich denke auch dass es am sinnvollsten ist wenn ich die drei Datein mal poste. Für alle drei gilt: VOR DEM <?PHP STEHT DEFINITIV KEIN LEERZEICHEN ODER KEINE LEERZEILE. DAS < IST DAS ERSTE ZEICHEN IN DER DATEI ÜBERHAUPT! (mir tuts ja selbst leid dass es so ist!! )

                        Also hier die admin.php...

                        PHP-Code:
                        <?php

                          session_start
                        ();
                          include(
                        "connect2db.inc.php");
                          include(
                        "usermanagment.inc.php");

                          
                        $userinfo CheckUserSession(session_id());

                          
                        // hier gehts dann weiter, wenn alles ok ist .. <img src="images/smilies/smile.gif" border="0" alt="">

                          // logout button
                        ?>
                          <a href="index.php?action=logout">Logout<br><?php echo $userinfo[Vorname]." ".$userinfo[Name]; ?></a>



                        ...die index.php...

                        PHP-Code:

                        <?php session_start();

                          include(
                        "connect2db.inc.php");
                          include(
                        "usermanagment.inc.php");

                          switch(
                        $action) {
                            case 
                        "login"  CheckUserLogin ($un$pwsession_id());
                                            break;

                            case 
                        "logout" UserLogout (session_id());
                                            break;

                            default:        echo 
                        '
                                    <br>
                                    <form name="login" method="post" action="index.php">
                                      <input type="hidden" name="action" value="login">
                                      Enter your username and password to log in
                                      <br>
                                      Username:&nbsp;</td><td><input class="flat" type="text" name="un"><br>
                                      Password:&nbsp;</td><td><input class="flat" type="password" name="pw"></br>
                                      <input type="submit" value="Login">
                                    </form>
                            '
                        ;
                          }

                        ?>
                        ...und die usermanagment.inc.php:

                        PHP-Code:

                        <?php


                          
                        function CheckUserLogin ($un$pw$session) {
                            
                        $result mysql_query("SELECT UserId,Name,Vorname,UserName,UserPasswd 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,UserName,UserLogin 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[UserLogin] = $zeile["UserLogin"];
                              return 
                        $sessarr;
                            }
                            else {
                              
                        header ("Location: index.php");
                              return 
                        false;
                            }
                          }

                        ?>

                        was steht in zeile 52 der user...inc.php?
                        Die Zeile 52 der user...inc.php ist die letzte Zeile der Datei!! In dieser Zeile steht jedoch nichts, sonder zwei zeilen vorher das abschließende?>

                        Kommentar


                        • #13
                          also sind nach dem ?> noch zeilenumbrüche drin? oder leerzeichen?

                          DIE MÜSSEN WEG !
                          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


                          • #14
                            STOP!!


                            Ich hab jetzt die zwei Leerzeilen nach dem ?> in der usermanagment.inc.php weggelöscht und siehe da..........es funktioniert??!

                            VERSTEH JETZT ÜBERHAUPT NICHTS MEHR!!

                            Übrigens hab ich da noch ein anderes Problem bezüglich pfadangabe von session.save_path in der php.ini!

                            Ich will die sessions im Verzeichnis C:\programme\apache group\apache\tmp speichern! Hab das Verzeichniss vorher erstellt!

                            Die Session wird allerdings immer im Verzeichnis c:\tmp gespeichert. Wenn ich dieses Verzeichnis lösche passiert ein Fehler!?

                            Hab bei meiner Suche was gelesen, dass eine Verzeichnistiefe von > 2 bei der PFadangabe in der php.ini nicht möglich ist!?!?

                            Hast du eine Ahnung!?

                            Gruß und Vielen Dank

                            Flo

                            Kommentar


                            • #15
                              hab das gerade mal überflogen. da es meherere header anweisungen gibt, würde ich mal nach jkeder header() anweisung ein die(); einbauen. vielleicht hilft das schon. *kein-versprechen*
                              EDIT:
                              mal wieder zu langsam
                              h.a.n.d.
                              Schmalle

                              http://impressed.by
                              http://blog.schmalenberger.it



                              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                              ... nur ohne :-)

                              Kommentar

                              Lädt...
                              X