Mysql und MD5 was stimmt da nicht ?

Homwer

Mitglied
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:
<?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"); 
} 

?>
 
Zuletzt bearbeitet:
Was ich auf den ersten Blick sehe: Du schließt in der WHERE-Klausel eine Klammer, ohne sie zu öffnen:
PHP:
WHERE name='".$name."' AND '".md5($_REQUEST["pwd"])."')    <<<< Die letzte Klammer
 
Habe es geändert, klapt aber trotzdem nicht ?! selber fehler
wie ist denn der genaue "tag" für eine md5 abfrage ?

Code:
     $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)
 
Probier mal Folgendes:
PHP:
<?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) > 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');

	}

?>
Übrigens werden ganz andere Daten verarbeitet als abgefragt.
 
Zuletzt bearbeitet:
Homwer hat gesagt.:
Habe es geändert, klapt aber trotzdem nicht ?! selber fehler
wie ist denn der genaue "tag" für eine md5 abfrage ?

Code:
     $sql = "SELECT                    
COUNT(*) as Anzahl                
FROM    users      WHERE       ID = ' " . $id . " ' AND     
 Password = ' " . MD5($pass) . " ' ";

eher die Richtung
 
läuft leider alles nicht :( er weigert sich $pwd mit dem passwort das MD5 verschlüsselt ist zu vergleichen.
Ohne MD5 geht alles
 
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:
<?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 ) { ....
 
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 ;)
 
Zuletzt bearbeitet:
Zurück