tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
4010
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Homwer Homwer ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Beiträge
    71
    Hi,
    ich bastel mir gerade ein kleines loginscript...
    teilweise sogar nach dem Tutorial von dieser page
    http://www.tutorials.de/tutorials9684.html

    Es läuft auch alles wenn ich MD5 nicht benutze, aber warum nicht mit MD5, dann bekomme ich den Fehler

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web20/html/raidplan/2/login.php on line 23

    Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web20/html/raidplan/2/login.php:23) in /srv/www/htdocs/web20/html/raidplan/2/login.php on line 38


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    <?php 
    // Session starten 
    session_start (); 
    // Datenbankverbindung aufbauen 
    include 'config/config.php';
    $name=$HTTP_POST_VARS['name'];
    $pass=$HTTP_POST_VARS['pwd'];
     
     
    $verbinde=mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db("usr_web20_2", $verbinde);
     
    $sql="SELECT ID,name 
        FROM rpUser 
        WHERE name= ".$name." AND Password = MD5('".$pass."')
        LIMIT 1"; 
     
     
        
    $result = mysql_query ($sql); 
     
    if (mysql_num_rows ($result) > 0) 
    { 
      // Benutzerdaten in ein Array auslesen. 
      $data = mysql_fetch_array ($result); 
     
      // Sessionvariablen erstellen und registrieren 
      $_SESSION["user_id"] = $data["ID"]; 
      $_SESSION["user_nickname"] = $data["Nickname"]; 
      $_SESSION["user_nachname"] = $data["Nachname"]; 
      $_SESSION["user_vorname"] = $data["Vorname"]; 
     
      header ("Location: intern.php"); 
    } 
    else 
    { 
      header ("Location: formular.php?fehler=1"); 
    } 
     
    ?>
    Geändert von Homwer (19.07.05 um 08:21 Uhr)
     

  2. #2
    Avatar von Karl Förster
    Karl Förster Karl Förster ist offline Mitglied Platin
    Registriert seit
    Feb 2001
    Ort
    München
    Beiträge
    646
    Was ich auf den ersten Blick sehe: Du schließt in der WHERE-Klausel eine Klammer, ohne sie zu öffnen:
    PHP-Code:
    WHERE name='".$name."' AND '".md5($_REQUEST["pwd"])."')    <<<< Die letzte Klammer 
     
    MfG

    Karl Förster
    Entwicklung / Development
    Appia, Inc.


    appia.com

  3. #3
    Homwer Homwer ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Beiträge
    71
    Habe es geändert, klapt aber trotzdem nicht ?! selber fehler
    wie ist denn der genaue "tag" für eine md5 abfrage ?

    Code :
    1
    2
    3
    4
    
         $sql = "SELECT                    
    COUNT(*) as Anzahl                
    FROM    users      WHERE       ID = '".$id."' AND     
     Password = MD5('".$pass."');";   <== ;"; ? kann doch garnicht gehen

    habe ich in einem tutorial gefunden, halte ich aber für falsch (läuft so auch nicht)
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Probier mal Folgendes:
    PHP-Code:
    <?php

        
    // Erhöhung der Fehlersensibilität
        
    ini_set('display_errors'1);
        
    ini_set('error_reporting'E_ALL);

        
    // Session starten 
        
    session_start(); 
        
    // Datenbankverbindung aufbauen 
        
    include 'config/config.php';


        
    $verbinde mysql_connect($dbhost$dbuser$dbpass);
        
    mysql_select_db('usr_web20_2'$verbinde);

        
    $sql "
            SELECT
                    `ID`,
                    `name`
              FROM
                    `rpUser`
              WHERE
                    `name`     = '"
    .mysql_real_escape_string($_POST['name'])."'
                AND `Password` = '"
    .md5($_POST['pwd'])."'
              LIMIT
                     1
            "
    ;
        
    $result mysql_query($sql) or die(mysql_error());

        if( 
    mysql_num_rows($result) > ) {

            
    // Benutzerdaten in ein Array auslesen.
            
    $data mysql_fetch_array($result);
            
    // Sessionvariablen erstellen und registrieren 
            
    $_SESSION['user_id'] = $data['ID'];
            
    $_SESSION['user_nickname'] = $data['Nickname'];
            
    $_SESSION['user_nachname'] = $data['Nachname'];
            
    $_SESSION['user_vorname'] = $data['Vorname'];
            
    header('Location: intern.php');

        } else {

            
    header('Location: formular.php?fehler=1');

        }

    ?>
    Übrigens werden ganz andere Daten verarbeitet als abgefragt.
    Geändert von Gumbo (19.07.05 um 12:46 Uhr)
     
    Markus Wulftange

  5. #5
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    Zitat Zitat von Homwer
    Habe es geändert, klapt aber trotzdem nicht ?! selber fehler
    wie ist denn der genaue "tag" für eine md5 abfrage ?

    Code :
    1
    2
    3
    4
    
         $sql = "SELECT                    
    COUNT(*) as Anzahl                
    FROM    users      WHERE       ID = ' " . $id . " ' AND     
     Password = ' " . MD5($pass) . " ' ";
    eher die Richtung
     

  6. #6
    Homwer Homwer ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Beiträge
    71
    läuft leider alles nicht er weigert sich $pwd mit dem passwort das MD5 verschlüsselt ist zu vergleichen.
    Ohne MD5 geht alles
     

  7. #7
    niroxx niroxx ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    24
    name/Password ...

    sicher dass dein Passwort Feld in der SQL Datenbank groß geschrieben wurde ?
     

  8. #8
    Homwer Homwer ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Beiträge
    71
    So hier gehts,
    wenn ich die Variablen $name und $pwd direkt mit ewerten aus der DB vergleiche.
    Gibt es nun eine möglich keit von der Variable $pwd die md5 summe zu bekommen?
    also $pwd in md5 umrechnen und dann einfach diese werte vergleichen?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    <?php 
    $pwd=$HTTP_POST_VARS['pwd'];
    $name=$HTTP_POST_VARS['name'];
     
        $verbinde = mysql_connect($dbhost, $dbuser, $dbpass); 
        mysql_select_db('usr_web20_2', $verbinde); 
     
        $sql = " 
            SELECT 
                    `ID`, 
                    `name`, 
        `passwort`
              FROM 
                    `rpUser` 
              WHERE 
                    `name`     = '".$name."' 
                AND `passwort` = '".$pwd."'
              LIMIT 
                     1 
            "; 
        $result = mysql_query($sql) or die(mysql_error()); 
     
        if( mysql_num_rows($result) > 0 ) { ....
     

  9. #9
    niroxx niroxx ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    24
    Gibt es nun eine möglich keit von der Variable $pwd die md5 summe zu bekommen?
    Ja
    AND `passwort` = '".md5($pwd)."'
    nun wurde das pw in md5 umgerechnet, nun musste den md5 wert
    einfach nur vergleichen mit den werten in deiner tabelle, fertig
    Geändert von niroxx (19.07.05 um 12:45 Uhr)
     

  10. #10
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hast du meinen Vorschlag schon probiert, Homwer? Ich hab ihn noch einmal überarbeitet und einen Fehler beseitigt.
     
    Markus Wulftange

  11. #11
    Homwer Homwer ist offline Mitglied Silber
    Registriert seit
    Jul 2004
    Beiträge
    71
    Hi es läuft nun
    habe einfach mit


    $passwort = md5($pwd);

    und dann

    `name` = '".$name."'
    AND passwort = '".$passwort."'

    gemacht
     

Ähnliche Themen

  1. Tabellenbreite stimmt nicht
    Von Thomas_Jung im Forum CSS
    Antworten: 6
    Letzter Beitrag: 30.06.09, 12:17
  2. [MySQL] Was stimmt in meiner Abfrage nicht?
    Von Shen84 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 02.03.09, 14:03
  3. MySQL Datenbankdesign - Stimmt so meine Umsetzung?
    Von X-Color im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 16.01.07, 11:15
  4. Frontpage - MySql Feldtyp stimmt nicht überein
    Von ArFiBa im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 26.12.04, 15:23
  5. Was stimmt nicht mit de.vu********
    Von Yasemin im Forum Smalltalk
    Antworten: 15
    Letzter Beitrag: 19.12.01, 13:23