Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Frage zu Login-Anwendung

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Frage zu Login-Anwendung

    Hallihallo,

    Ich habe folgendes Problem, über dem ich nun schon 2 tage brüte aber nicht weiter komm:

    Ich habe eine html-Seite, in die ein Formular eingebettet ist: Das sieht so aus:

    Code:
    <html>
    ...
    <form action="login.php" method="post">
    <p><input type="text" size="15" name="email" /> E-Mail Adresse</p>
    <p><input type="password" size="15" name="password" /> Passwort</p>
    <input type="submit" value="Einloggen" name="submit" />
    </form>
    ...
    </html>
    Das hier eingebene Passwort und E-Mail werden an die login.php übergeben. Diese sieht so aus:

    PHP-Code:
    <?php 

    session_start
    (); 

    // DB-Verbindung
    $verbindung mysql_connect(" * "" * " " * "

    or die(
    "Verbindung zur Datenbank konnte nicht hergestellt werden"); 

    mysql_select_db(" * ") or die ("Datenbank konnte nicht ausgewählt werden"); 


    // Variable für eventuelle Fehlerausgabe
    $error '';

    /* Formular abgeschickt ? */
    if(isset($_POST['submit'])){
        
        
    $abfrage "SELECT EMail, Passwort FROM * WHERE EMail = '".mysql_real_escape_string($_POST["email"])."' AND Passwort = '".md5($_POST["password"])."' LIMIT 1"
        
    $res mysql_query($abfrage) or die(mysql_error());  
        
        if(
    mysql_num_rows($res) == '0'){
        
            
    $error 'Die Zugangsdaten sind nicht korrekt.';
        
        } else {
            
            
    // Zustand "eingeloggt" in der Session merken
            
    $_SESSION['loggedin'] = 'ok';
            
            
    // Usernamen in der Session merken
            
    $_SESSION['user'] = $_POST["email"];
            
            
    // weiterleiten zum Mitarbeiterbereich
            
    header('Location: Mitarbeiterbereich_index.php');
            exit();    
        }


    ?>

    Und Jetzt sollte eigentlich weitergeleitet werden auf die Seite Mitarbeiterbereich_index.php, das passiert allerdings nicht. Stattdessen kommt eine ganz leere Seite, oben in der Adresszeile steht .../login.php

    Wo liegt hier der Fehler?

    Vielen Dank für Euro Hilfe!

    Daniela

  • #2
    1. Location-Header weiterleitungen sollten immer eine absolute URL haben, nicht einfach nur einen Dateinamen.
    2. Schalt mal error reporting und display_errors ein. Damit siehst du welcher Fehler kommt, ich Tippe ja auf "Headers already sent"

    Kommentar


    • #3
      Hallo,

      vielen dank für die schnelle Antwort!

      Ich habe jetzt in der login.php noch vor session_start das hier eingebunden:

      error_reporting(E_ALL);

      Die andere Möglichkeit Fehler aufzuspüren kenne ich leider noch nicht. Wie funktioniert das?

      Jedenfalls ändert sich gar nix, ich versuche mich einzuloggen, schicke also das formular ab und komme dann auf eine ganz leere seite (login.php)

      Kommentar


      • #4
        Naja könnte es nicht auch sein dass er gar nicht in den else Teil der Abfrage reinläuft? Sondern in den Teil wo $error = ... definiert wird? Da wird nichts ausgegeben, könnte also die weiße Seite erklären.

        Kommentar


        • #5
          Hallo Florian,

          also ich habe jetzt mal eine feststehende Url in die Location header Anweisung geschreiben (muss ich da Anführungszeichen oder so verwenden?)

          Das ändert leidert auch nichts.

          Das könnte natürlich sein, dass er soweit gar nicht kommt. Aber wo liegt dann der Fehler?

          Kommentar


          • #6
            Lass dir doch mal in beiden Teilen der If abfrage mal per echo etwas ausgeben und lass die header() Weiterleitung erstmal weg. Dann weißt du zumindest WAS passiert, DANN kannst du schauen WARUM das passiert.

            Kommentar


            • #7
              Ich würds erstmal so probieren:

              Zitat von Tobsen Beitrag anzeigen

              PHP-Code:
              <?php 
               
                  
              if(mysql_num_rows($res) == '0'){
               
              ...
               
              // Ich würds mal damit probieren
              print_r($_POST);
              echo 
              '<br><br>Teil 1';
                  } else {
               
              // Ich würds mal damit probieren
              print_r($_POST);
              echo 
              '<br><br>Teil 2';
               
              .....
              ?>
              Sonnigen Gruß

              Kommentar


              • #8
                ...und mach mal vor dem session_start() die Leerzeile wech.

                Wolf29
                while (!asleep()) sheep++;

                Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                Kommentar


                • #9
                  Zitat von wolf29 Beitrag anzeigen
                  ...und mach mal vor dem session_start() die Leerzeile wech.
                  Warum? Gibt es keinen Grund für.

                  Kommentar


                  • #10
                    Hallo,

                    Danke für die Antworten. Jetzt kommt folgende Fehlermeldung:

                    Parse error: syntax error, unexpected T_ELSE in /mnt/web3/63/82/52398082/htdocs/website_business/login.php on line 37

                    das heißt, er hängt sich an dem "else" auf, oder?

                    Vielen Dank,

                    Daniela

                    Kommentar


                    • #11
                      ...Wie bei header-Funktionen muss session_start() vor jeder Ausgabe (wie echo oder auch nur einem Leerzeichen oder Zeilenvorschub im HTML-Quelltext) erfolgen. Wie erwähnt wird es nur benötigt, wenn session.auto_start=0 ist...
                      (Quelle: http://www.usegroup.de/software/phpt.../sessions.html)

                      So kenne ich es zumindestens!?!?

                      Wolf29
                      while (!asleep()) sheep++;

                      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                      Kommentar


                      • #12
                        Wie sieht den dein Code jetzt aus und wo ist Zeile 37 ^^ Glaskugel ist heute mal wieder nicht da wie immer ...

                        Kommentar


                        • #13
                          Zitat von wolf29 Beitrag anzeigen
                          (Quelle: http://www.usegroup.de/software/phpt.../sessions.html)

                          So kenne ich es zumindestens!?!?

                          Wolf29
                          Ja da steht im HTML Code, du befindest dich dort aber im PHP Code, die Leerzeile erzeugt also keine Ausgabe!

                          Kommentar


                          • #14
                            Ja...klar. Hab ich auch gerade gesehen! Gott sei dank ist Wochenende...nehme natürlich alles zurück und behaupte das Gegenteil!

                            Wolf29
                            while (!asleep()) sheep++;

                            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                            Kommentar


                            • #15
                              Weiß jemand wo der Fehler liegt?

                              Ich seh es einfach nicht...

                              Danke!

                              Kommentar

                              Lädt...
                              X