LoginSystem: Finde den Fehler nicht

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

  • LoginSystem: Finde den Fehler nicht

    Hallo, habe ein LoginScript in meine Site eingebaut, doch es funktioniert nicht. Es gibt keine Fehlermeldung, aber irgendwie geht es trotzdem nicht.

    Habe dieses Thema schon bei Tutorials.de angefangen, doch bisher kann mir dort auch niemand genau sagen, was los ist.

    http://www.tutorials.de/tutorials149556.html

    Habe mal in einer pdf eine Grobe Übersicht, über mein Vorhaben und die ganzen Scripts dargestelt, wie ich das so habe. Vielleicht findet Ihr ja einen Fehler!!

    Für eure Hilfe wäre ich sehr dankbar!

    MfG piumer
    Angehängte Dateien

  • #2
    ist ja kein scriptgesuch, anscheinend eher nen projekthilfe.

    *verschieb*

    Kommentar


    • #3
      hubs, sorry!

      Sorry, hab mir gar keine Gedanken gemacht, wo ich das jetzt hinposte! Aber werde mich bessern!!!

      Kommentar


      • #4
        da es meinem schönen usermanagement sehr ähnlich ist, kannst du das ja mal lesen und ggfls neu 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


        • #5
          Ok, danke!

          Jo, ich werde Dein Usermanagment heute wirklich mal ausprobieren. Vielleicht klappt dass ja. Allerdings Läßt es mich nicht in Ruhe, was mit dem bisherigen ist. Bei anderen soll es auch gut funktionieren, warum bei mir nicht?

          Naja, wie gesagt, werde Deins mal ausprobieren und berichten wie es geklappt hat.

          Gruß, piumer

          Kommentar


          • #6
            Fehlermeldung

            So, habe nun mal Dein System bei mir probiert.

            Ich bekomme folgende Fehlermeldung:

            Fatal error: Cannot redeclare checkuserlogin() (previously declared in C:\FoxServ\www\MyPage\usermanagment.inc.php:7) in C:\FoxServ\www\MyPage\usermanagment.inc.php on line 7

            Hm, was nun?

            Kommentar


            • #7
              Re: Fehlermeldung

              Original geschrieben von michelangelo
              Hm, was nun?
              entweder selbst mal drüber nachdenken, was "cannot redeclare" auf deutsch heissen könnte, oder danach suchen.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                liegt daran, dass du das
                previously declared
                hast.

                Kommentar


                • #9
                  Fehlermeldung weg

                  So, die Fehlermeldung ist nun weg, habe in der admin.php statt include() jetzt include_once verwendet. Hoffe das ist jetzt nicht irgendwie falsch.

                  Nun bekomme ich auch die Meldung:

                  cannot send header, ......headers already sent...blablabla

                  Tja, nun soll also irgendwo eine Ausgabe vor header oder vor und nach <?php ......?> sein, oder wie? Also direkt in den Zeilen ist dort kein Leerzeichen oder sowas. Natürlich sind da ein par Tab´s usw. , in den Zeilen dazwischen, damit man bei den Scripts die Übersicht behält.

                  Sind das auch alles Störfaktoren?

                  Kommentar


                  • #10
                    irgendwo muss da ne ausgabe erfolgt sein, bevor du header() ausführst. siehe suche.

                    Kommentar


                    • #11
                      Re: Fehlermeldung weg

                      Original geschrieben von piumer
                      Tja, nun soll also irgendwo eine Ausgabe vor header oder vor und nach <?php ......?> sein, oder wie? Also direkt in den Zeilen ist dort kein Leerzeichen oder sowas. Natürlich sind da ein par Tab´s usw. , in den Zeilen dazwischen, damit man bei den Scripts die Übersicht behält.
                      um herauszufinden, wo die header ausgelöst wurden, bietet sich die funktion headers_sent() an - optionalen zweiten und dritten parameter beachten!
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Finde nix!

                        Hab jetzt nochmal peinlichst alle Leerzeichen und -zeilen gesucht. Da is nix mehr. Wichtig ist das ja nur, wie oben gelesen in der usermanagment.inc und connect2db.

                        Es hat doch nichts mit meiner Navigationsleiste in der index zu tun, in der ich ja auch php-dateien include.

                        Vielleicht liegt es ja daran, dass ich in der Tabelle, in der die sessiondaten stehen sollen, es so gemacht habe:

                        <?php
                        include_once("connect2db.inc.php");
                        include_once("usermanagment.inc.php");
                        if (isset($_POST['action']) && $_POST['action']=='login')
                        {
                        $un = (isset($_POST['un'])) ? $_POST['un'] : '';
                        $pw = (isset($_POST['pw'])) ? $_POST['pw'] : '';
                        CheckUserLogin ($un, $pw, session_id());
                        }
                        if (isset($_GET['action']) && $_GET['action']=='logout')
                        {
                        UserLogout (session_id());
                        }
                        ?>

                        --------------------
                        Habe mal im Mozilla Firefox "Enable Cookies for the current session only" aktiviert, dann zeigt er mir dort auch nicht mehr die Meldung "header already sent" an, stattdessen halt gar nichts"

                        Und hier nochmal der Code von usermanagment.inc und connect2db,
                        ist da irgendeine Ausgabe, die ich übersehen habe?


                        <?php
                        /**** Prüfen, ob der User berechtigt ist, einen Login durchzuführen.*/
                        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) == 1 ){
                        $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;
                        }
                        }
                        ?>

                        Connect2db:

                        <?php
                        /* ******************** Definitionen für DB-Connect's ******************/
                        $DB[host] = "localhost";
                        $DB[user] = "user";
                        $DB[passwd] = "pass";
                        $DB[dbname] = "mydb";
                        /* *********************************************************************/
                        @mysql_connect( $DB[host] , $DB[user] , $DB[passwd] );
                        @mysql_select_db( $DB[dbname] ) or die("Unable to select database");
                        /* *********************************************************************/
                        ?>

                        Kommentar


                        • #13
                          So richtig?

                          Habe den headers_sent mal probiert:

                          if (!headers_sent()) {
                          header ("Location: index.php?$action");
                          exit;
                          }

                          Ist das so richtig?

                          Wahrscheinlich nicht, denn ich bekomme kein Ergebnis.

                          Wo sollte ich das denn am besten einsetzen?

                          Kommentar


                          • #14
                            Wahrscheinlich nicht, denn ich bekomme kein Ergebnis.
                            du solltest zumindes weitergeleitet werden.

                            gib mal ein else an, um zu sehen, ob headers gesendet wurden.

                            Kommentar


                            • #15
                              Funzt auch net!

                              Habe es nun so in der index.php direkt hinter session_start() geschrieben:

                              if (!headers_sent()) {
                              header ("Location: index.php?$action");
                              }
                              else {echo "Headers gesendet";
                              }
                              exit;

                              Der Firefox-Browser meldet:

                              Redirection limit for this URL exceeded. Unable to oad the requested page.

                              Der Explorer fängt total an zu spinnen.

                              Setze ich den Code jedoch in der admin.php vor session_start(), dann passiert wieder nix, also wieder headers already sent...

                              Kommentar

                              Lädt...
                              X