SQL Login Problem

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

  • #16
    Vielen Dank MelloPie du bist nen Schatz !

    Habe bekomme aber kurioserweise die werte Angezeigt die ich auch eingebe also:

    PHP-Code:
    Array
    (
        [
    0] => USER      
        
    [1] => 1

    Also eingentlich genau das wass ich auch will...


    Die 1 steht auch als PW in der DB...
    -> It`s good to be bad! <-

    http://de.php.net
    http://php-faq.de
    http://www.schattenbaum.net
    http://www.dreamcodes.com

    Kommentar


    • #17
      Original geschrieben von schmalle
      Ich sehe es zu ersten mal ...
      aber schmalli, es gibt sogar ein paar Posting zwischen ihn und @goth hin und her

      Kommentar


      • #18
        Original geschrieben von php-anfaenger
        ....
        Also eingentlich genau das wass ich auch will...


        Die 1 steht auch als PW in der DB...
        Mann ... mann ...mann .... wundert dich das? denn unmittelbar vor der if Zeile hast du:
        PHP-Code:
        $_POST['passwd'] = md5($_POST['passwd']); 

        Kommentar


        • #19
          Original geschrieben von asp2php
          aber schmalli, es gibt sogar ein paar Posting zwischen ihn und @goth hin und her
          yep. ich habs nur auf die schnelle nicht gefunden sonst hätt ichs verlinkt.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #20
            Also das ist das funktionierende Original basierend auf der PEAR class.

            PHP-Code:

            <?php

            // database connect script.

            require 'db_connect.php';

            if(
            $logged_in == 1) {
                die(
            'You are already logged in, '.$_SESSION['username'].'.');

            }


            ?>
            <html>
            <head>
            <title>Login</title>
            </head>
            <body>
            <?php

            if (isset($_POST['submit'])) { // if form has been submitted


                /* check they filled in what they were supposed to and authenticate */
                
            if(!$_POST['uname'] | !$_POST['passwd']) {
                    die(
            'You did not fill in a required field.');
                }

                
            // authenticate.

                
            if (!get_magic_quotes_gpc()) {
                    
            $_POST['uname'] = addslashes($_POST['uname']);
                }

                
            $check $db_object->query("SELECT username, password FROM users WHERE username = '".$_POST['uname']."'");

                if (
            DB::isError($check) || $check->numRows() == 0) {
                    die(
            'That username does not exist in our database.');
                }

                
            $info $check->fetchRow();

                
            // check passwords match

                
            $_POST['passwd'] = stripslashes($_POST['passwd']);
                
            $info['password'] = stripslashes($info['password']);
                
            $_POST['passwd'] = md5($_POST['passwd']);

                if (
            $_POST['passwd'] != $info['password']) {
                    die(
            'Incorrect password, please try again.');
                }

                
            // if we get here username and password are correct, 
                //register session variables and set last login time.

                
            $date date('m d, Y');

                
            $update_login $db_object->query("UPDATE users SET last_login = '$date' WHERE username = '".$_POST['uname']."'");

                
            $_POST['uname'] = stripslashes($_POST['uname']);
                
            $_SESSION['username'] = $_POST['uname'];
                
            $_SESSION['password'] = $_POST['passwd'];
                
            $db_object->disconnect();
            ?>

            <h1>Logged in</h1>
            <p>Welcome back <?php echo $_SESSION['username']; ?>, you are logged in.</p>

            <?php

            } else {    // if form hasn't been submitted

            ?>
            <h1>Login</h1>
            <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
            <table align="center" border="1" cellspacing="0" cellpadding="3">
            <tr><td>Username:</td><td>
            <input type="text" name="uname" maxlength="40">
            </td></tr>
            <tr><td>Password:</td><td>
            <input type="password" name="passwd" maxlength="50">
            </td></tr>
            <tr><td colspan="2" align="right">
            <input type="submit" name="submit" value="Login">
            </td></tr>
            </table>
            </form>
            <?php
            }
            ?>
            </body>
            </html>
            soviel änerungen hab och doch net gemacht das es nicht funktioniert oder ?
            -> It`s good to be bad! <-

            http://de.php.net
            http://php-faq.de
            http://www.schattenbaum.net
            http://www.dreamcodes.com

            Kommentar


            • #21
              Also wenn ich Debug auf true stelle, bekomme ich ja den Query beim senden der Logindaten angezeigt !

              Diesen Query nehme ich nun paste Ihn in meinen SQL Editor und bekomme als Ausgabe genau das Passwort das ich beim senden auch eingegeben habe....

              Ich versteh die welt nicht mehr er soll mir das PW anzeigen
              und die anzeige entspricht dem was ich eingebe ?!?

              Ich weiss nicht mehr weiter....

              Sorry wenn ich evtl. nerfe !

              Gruss
              -> It`s good to be bad! <-

              http://de.php.net
              http://php-faq.de
              http://www.schattenbaum.net
              http://www.dreamcodes.com

              Kommentar


              • #22
                Dann überlege mal scharf. Tipp: mach erstmal so
                PHP-Code:
                // $_POST['passwd'] = md5($_POST['passwd']); 
                dann denk nach, warum es plötzlich dann funz

                Kommentar


                • #23
                  OffTopic:

                  nur falls es noch jemanden interessiert, warum meine Signatur so aussah .. war nur ein kleiner Gag

                  http://www.php-resource.de/forum/sho...threadid=39424

                  [color=red]Geht nicht[/color] ist keine Fehlermeldung

                  Kommentar


                  • #24
                    Original geschrieben von asp2php
                    Dann überlege mal scharf. Tipp: mach erstmal so
                    PHP-Code:
                    // $_POST['passwd'] = md5($_POST['passwd']); 
                    dann denk nach, warum es plötzlich dann funz
                    Selbst wenn ich diese Zeile rausnehme, immernoch Falsches Passwort.

                    Ich denke du meintest das der abgleich mit dem normalen PW verschlüsselt postet und deswegen das Passwort falsch ist, oder ?

                    Aber auch ohne diese Zeile keine chance
                    -> It`s good to be bad! <-

                    http://de.php.net
                    http://php-faq.de
                    http://www.schattenbaum.net
                    http://www.dreamcodes.com

                    Kommentar


                    • #25
                      ich habe dir den Hinweis gegeben, weil du gepostet hast:
                      Habe danach wiederum dem Feld A_PASSWORT in der DB einen standard wert von "1" vergeben was ja eigentlich zum testen reicht... Aber gleiche Problem und selber fehler....
                      d.h. für mich dass du das PW direkt ohne MD5-Kodierung in die DB eingetragen hast, aber in deiner PHP-Code das per Formular eingegebene Passwort mit MD5 kodiert.

                      Nun, wie ist das PW in der DB eingetragen? eine Eins ohne MD5-Kodierung oder mit?

                      Kommentar


                      • #26
                        Ja du hast recht, habe es normal als Zahl in die DB eingegeben.
                        Dann ist es nur komisch das dennoch nix geschieht wenn ich die Zeile rausnehme....
                        -> It`s good to be bad! <-

                        http://de.php.net
                        http://php-faq.de
                        http://www.schattenbaum.net
                        http://www.dreamcodes.com

                        Kommentar


                        • #27
                          sind beide Eintragungen (Formular und DB) wirklich 1 oder prüft mal ob Leerzeichen davor oder danach existiert; kannst aber auch mal versuchen, auf Integer explizit zu konvertieren, und erst dann vergleichen.

                          Kommentar


                          • #28
                            Habe nochmal die werte genau überprüft und diese sind gleich ?!?

                            Habe extra das Passwort neu eingegeben, natürlich direkt in die DB !

                            Habe dann mal mit den Feldwerten gespielt, char... varchar etc...

                            Keine Änderung ?!?

                            Was ich nicht verstehe, ist das er ja den Usernamen findet also die Abfrag ok ist aber das dazugehörige PW nicht ob POST den wert liefert und die DB bei dem ausgegebenen SQL Statement den gleichen wert...
                            -> It`s good to be bad! <-

                            http://de.php.net
                            http://php-faq.de
                            http://www.schattenbaum.net
                            http://www.dreamcodes.com

                            Kommentar


                            • #29
                              mach mal
                              PHP-Code:
                              echo $_POST['passwd'].'<br />.$info['A_PASSWORT']; 
                              was kommt raus?

                              Kommentar


                              • #30
                                Habe nun

                                PHP-Code:

                                echo $_POST['passwd'].'<br />'.$info['A_PASSWORT']; 

                                gemacht.

                                Ausgabe ist wiederum der Wert aus der DB und der Wert den ich gepostet habe, also korrekt.
                                -> It`s good to be bad! <-

                                http://de.php.net
                                http://php-faq.de
                                http://www.schattenbaum.net
                                http://www.dreamcodes.com

                                Kommentar

                                Lädt...
                                X