tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
379
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    daniel_sun daniel_sun ist offline Mitglied Gold
    Registriert seit
    Mar 2006
    Beiträge
    100
    Hallo,

    ich hab folgende Scripte:

    dbControl.Class.php
    PHP-Code:
    <?php
        
    class dbControl{
            
            private 
    $host "localhost";
            private 
    $user "root";
            private 
    $pass "";
            private 
    $db "sgb";
        
            public function 
    dbConnect(){
                        
                if(
    mysql_connect($this->host$this->user$this->pass) && mysql_select_db($this->db)){
                    return 
    true;
                }else{
                    
    $this->dbError();
                }
                
            }
            
            private function 
    dbError(){
            
                echo 
    "Es konnte keine Verbindung zur Datenbank hergestellt werden!";
            
            }
        }
    ?>
    userControl.Class.php
    PHP-Code:
    <?php
        
    class userControl{
                    
                    private 
    $userName;
                    private 
    $userPass;
                    
                    public function 
    __construct($userName$userPass) {
                        
                        
    $this->userName $userName;
                        
    $this->userPass $userPass;
                        
                    }
        
            public function 
    login(){
                        
                        if(
    mysql_query("SELECT * FROM user WHERE userName = '".$this->userName."' AND password = 'md5(".$this->userPass.")'")){
                            
                            echo 
    "LogIn Erfolgreich";
                            
                        }else{
                            echo 
    "LogIn Fehlgeschlagen";
                        }

                        
            }
        }
    ?>
    index.php
    PHP-Code:
    <?php
        
    require_once("class/dbControl.Class.php");
            require_once(
    "class/userControl.Class.php");
            
            if(isset(
    $_POST['submit'])){
                
                
    $db = new dbControl();
                
    $db->dbConnect();
                
                
    $userData = new userControl($_POST['userName'], $_POST['userPass']);
                
    $userData->login();
                
                exit();
                
            }
    ?>

    <!DOCTYPE html>
    <html>
        <head>
            <title>SGB-LogIn</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        </head>
        <body>
            <form action="index.php" method="POST">
                <p> Username: <input type="text" name="userName"> </p>
                <p> Passwort: <input type="password" name="userPass"> </p>
                <p> <input type="submit" name="submit" value="LogIn"> <p>
            </form>
        </body>
    </html>
    Wie schon im Titel gesagt ist der LogIn immer Erfolgreich egal ob ich richtige oder falsche angaben mache. Finde den Fehler nicht.

    GRuß
    daniel_sun
     

  2. #2
    Avatar von para_noid
    para_noid para_noid ist offline Mitglied Gold
    Registriert seit
    Aug 2011
    Beiträge
    144
    Die Abfrage ist falsch.

    "if(mysql_query)" gibt true zurück, wenn das Query erfolgreich durchgeführt wurde. Das sagt noch nichts über evtl. zurückgegebene Datensätze aus.

    Zugriff auf die Rückgabe bekommst du u.a. mit mysql_fetch_assoc (erstes Beispiel). Wenn du nur wissen willst, ob etwas zurückkam, reicht theoretisch auch mysql_affected_rows, aber das würde ich hier nicht verwenden.


    edit: Danke saftmeister für die Korrektur, da hab ich gestern ziemlich gepennt. Meinte natürlich mysql_num_rows.
    Geändert von para_noid (14.01.12 um 12:05 Uhr)
     
    Für die Übereinstimmung von Niederschrift und Hirninhalt.

  3. #3
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Anmerkung: mysql_affected_rows() ist hier nicht sehr klug, denn diese Funktion liefert nur die Anzahl veränderter Datensätze zurück. Wenn du die Anzahl der Datensätze aus einem SELECT-Statement haben willst, solltest du lieber mysql_num_rows() verwenden.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Login script funktioniert nicht immer
    Von allsports im Forum PHP
    Antworten: 5
    Letzter Beitrag: 13.10.07, 14:05
  2. Klassen immer mit new anlegen?
    Von ev0lst im Forum PHP
    Antworten: 8
    Letzter Beitrag: 16.07.07, 13:31
  3. Spamattacke erfolgreich?
    Von JaguarGorgone im Forum Security (Viren, Trojaner, Spam)
    Antworten: 1
    Letzter Beitrag: 28.03.07, 03:43
  4. Seit Installation von IE 6 SP2 werde ich immer nach login zum router gefragt
    Von the snake II im Forum Internet, DSL & Flatrate
    Antworten: 0
    Letzter Beitrag: 03.02.05, 16:55
  5. login: Passwort immer eingeben
    Von the snake im Forum PHP
    Antworten: 8
    Letzter Beitrag: 14.04.04, 19:49