Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Login Script geht nicht

Einklappen

Neue Werbung 2019

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

  • PHP Login Script geht nicht

    Hallo zusammen,
    ich habe ein Login Script mit php erstellt und will es nun nutzen. Wenn ich das Script testen will gibt er mir immer den Fehler aus das ich angeblich falsche daten angegeben hätte.

    Der Code:
    PHP-Code:
    <?php
        
    include("sql/sql.php");
        
        
    session_start(); 
        
    $login $_POST["login"]; 
        
        
         if(isset(
    $login))
         {
         
        
    $user $_POST["username"];
        
    $pass md5($_POST["password"]);
        
        if(
    $user!='' AND $pass!='');
        {
            
    $abfrage "SELECT username, passwort FROM user WHERE username LIKE '$user' LIMIT 1";
            
    $ergebnis mysql_query($abfrage);
            
    $row mysql_fetch_object($ergebnis);
            
            if(
    $row->passwort == $pass)
                {
                    echo 
    "Erfolgreich Eingeloggt";
                } else {
                    echo 
    "Fehler";
                }
        }
        
        }
        
        

    ?>

    Bild vom aufbau der Datenbank: http://abload.de/img/mysqlz5f3h.png

    Hoffe mir kann wer helfen

  • #2
    Erstens so wie du das machst ist es unsicher:
    md5->veraltet,nimm besser password_hash() siehe PHP_doku
    mysql-> auch veraltet,besser mysqli oder gleich pdo

    schreib doch mal die fehlermeldung,bitte.
    Lass doch auch gleich die DB für dich arbeiten und schreib für die Abfrage:
    PHP-Code:
    $abfrage "SELECT username,"die benuterdaten und ssoweiter..." FROM user WHERE username=".$user." and passwort=".$pass
    mehr seh ich grad nicht,sorry

    Kommentar


    • #3
      Naja, es gibt nicht direkt ne Fehlermeldung. Es ist so das er nur "Fehler" ausgibt was ja bei
      PHP-Code:
      echo "Fehler"
      so deklariert ist.

      Kommentar


      • #4
        hast du deine passwörter auch vorher mit md5 gespeichert und stimmen sie auch überein,tippfehler??

        Kommentar


        • #5
          Zitat von IceBlade Beitrag anzeigen
          Naja, es gibt nicht direkt ne Fehlermeldung. Es ist so das er nur "Fehler" ausgibt was ja bei
          PHP-Code:
          echo "Fehler"
          so deklariert ist.
          mach mal n echo auf mysql_error(), es sei denn du hast schon auf mysqli oder pdo umgestellt dann verwende die jeweils andere syntax.
          lass dir ausgeben was in $pass und $row->passwort drin steht.
          Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

          Kommentar


          • #6
            Zitat von easyAnfaenger26 Beitrag anzeigen
            hast du deine passwörter auch vorher mit md5 gespeichert und stimmen sie auch überein,tippfehler??
            Ja sind so gespeichert und es ist kein Tippfehler

            Kommentar


            • #7
              Debuggen könnte helfen.

              Außerdem würde ich bei einem Login keinen Abfrage mit LIKE machen. Nimm lieber = . Denn sonst kann es später zu Komplikationen kommen.

              Kommentar


              • #8
                Zitat von chiller20000 Beitrag anzeigen
                Außerdem würde ich bei einem Login keinen Abfrage mit LIKE machen. Nimm lieber = . Denn sonst kann es später zu Komplikationen kommen.
                Hab eben schon das eingefügt was easyAnfaenger26 geschrieben hat. Hilft leider aber auch nicht

                Kommentar


                • #9
                  Debugge doch mal was du von der MySQL-Datenbank zurück bekommst - z.B. var_dump($row) - was ist die Ausgabe davon im Browser?

                  Siehe Debugging (http://php-de.github.io/#debugging) und aktiviere Error-Reporting usw.
                  Gruß,
                  SebTM

                  Kommentar


                  • #10
                    Also entweder bin ich zu doof dazu das zu machen oder es zeigt mir nix an o.O

                    Kommentar


                    • #11
                      Ändere das:
                      PHP-Code:
                              $abfrage "SELECT username, passwort FROM user WHERE username LIKE '$user' LIMIT 1";
                              
                      $ergebnis mysql_query($abfrage);
                              
                      $row mysql_fetch_object($ergebnis); 
                      zu

                      PHP-Code:
                              $abfrage "SELECT username, passwort FROM user WHERE username LIKE '$user' LIMIT 1";
                              
                      $ergebnis mysql_query($abfrage);
                              
                      $row mysql_fetch_object($ergebnis); 
                              
                      var_dump($row); 
                      was passiert beim Seitenaufruf?
                      Wenn die Seite leer bleibt bzw. allgemein während des Debugging füge GANZ OBEN vor dem ersten Code aber NACH "<?php" folgendes ein:
                      PHP-Code:
                      error_reporting(-1);
                      ini_set('display_errors'1); 
                      Gruß,
                      SebTM

                      Kommentar


                      • #12
                        Kommt das:
                        PHP-Code:
                        Deprecatedmysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /...../sql.php on line 3
                        Notice
                        Undefined indexlogin in /...../login.php on line 9 
                        Habe mal die Datenpfade aus sicherheitsgründen rausgenommen

                        Kommentar


                        • #13
                          Was ist eine Datenpfage? (Edit: Ach, Datenpfade. Ja, okay.)

                          Wäre jedenfalls ganz hilfreich, mal zu gucken, ob in $row das steht, was du erwartest. Insbesondere, ob der Passwort-Hash darin dem Wert von $pass entspricht beziehungsweise was die beiden Werte sind, weil da ja offenbar keine Entsprechung zu existieren scheint.

                          Ansonsten sagt dir PHP, dass dieser Code hier so nicht das tut, was du erwartest, weil $login an der Stelle immer gesetzt ist:

                          PHP-Code:
                              $login $_POST["login"]; 
                              
                               if(isset(
                          $login)) 
                          Du suchst mehr so was:

                          PHP-Code:
                          $login = isset($_POST['login']);

                          if (
                          $login

                          Kommentar


                          • #14
                            Hmm... habs getestet bringt aber leider auch nichts ;(

                            Kommentar


                            • #15
                              Dann noch mal mit Schleifchen drum rum… Guck, was in $row steht, und vergleich das mit dem, was in $pass steht. Siehe etwa auch Beitrag #11.

                              Kommentar

                              Lädt...
                              X