Login script (checkuser)

putzi

Gesperrt
Hallo!
Ich habe folgendes Script, und komme aber nicht drauf, was da falsch ist.
Es gibt immer aus, dass der user bzw. Kennwort falsch ist!

PHP:
<?php 

session_start ();

include('connect.inc.php');

$user = $_POST['user'];
$pwd = $_POST['pwd'];

$select = "SELECT ". 
    "id, vorname, nachname, email, geb_d, geb_m, geb_y, user, kennwort, status". 
  "FROM ". 
    "user ". 
  "WHERE ". 
    "(user =. '".$user."') AND ".  ####// Editiert!!
    "(kennwort = '".md5($pwd)."')"; 
    
$query = mysql_query ($select); ####// Editiert!


if (mysql_num_rows ($query) > 0) ####// editiert!
{ 

  $data = mysql_fetch_array ($query);  ###// editiert!


  $_SESSION["user_id"] = $data["id"]; 
  $_SESSION["user_vorname"] = $data["vorname"]; 
  $_SESSION["user_nachname"] = $data["nachname"]; 
  $_SESSION["user_email"] = $data["email"];
  $_SESSION["user_geb_d"] = $data["geb_d"];  
  $_SESSION["user_geb_m"] = $data["geb_m"];  
  $_SESSION["user_geb_y"] = $data["geb_y"];  
  $_SESSION["user_user"] = $data["user"];  
  $_SESSION["user_status"] = $data["status"];  
 
  header ("Location: index.php"); 
} 
else 
{ 
  header ("Location: index.php?open=login&error=1"); 
} 
?>


DAnke!
 
Zuletzt bearbeitet:
Hallo, dein Code sieht normal aus, ich glaub du hast einen anderen Fehler undzwar nehm doch mal bei Kennwort im $select-tag das md5() weg und lass $pwd alleine stehen.

Ich vermute nämlich in der DB steht das Kennwort nicht md5 verschlüsselt, bei deinem Login jedoch nimtm er das eingegebene Kennwort und verschlüsselt es und gleicht es dann mit dem in der DB ab.
 
Hallo,

ich habe nur eine kurzer Frage, warum steht dort
PHP:
"(user like '".$user."')
mit den Klammern?
 
danke dennis!
hab ich vergessen.

Fehlermeldung:
Parse error: parse error, unexpected T_IF in C:\server\xampp\htdocs\uttx\old_house\checkusr.php on line 21

@Gumbo, was ist das?


@venyl
Doch, das pwd ist mit md5 in der DB gespeichert!
 
Ahh, danke Gumbo!

SO, jetzt wird zwar keine Fehlermeldung mehr angezeigt, aber es wird angezeigt, dass das PWD, bzw USER falsch ist.
 
Nun hast du wohl in der Abfragedefinition ein Punkt gesetzt, der dort nicht erlaubt ist. Probier mal Folgendes:
PHP:
<?php

	session_start();

	include 'connect.inc.php';

	$query = '
		SELECT
		        `id`,
		        `vorname`,
		        `nachname`,
		        `email`,
		        `geb_d`,
		        `geb_m`,
		        `geb_y`,
		        `user`,
		        `kennwort`,
		        `status`
		  FROM
		        `user`
		  WHERE
		        `user`     = "'.mysql_real_escape_string($_POST['user']).'"
		    AND `kennwort` = "'.md5($_POST['pwd']).'"
		';
	$result = mysql_query($select)
		or die(mysql_error());

	if( mysql_num_rows($result) > 0 ) {
		$data = mysql_fetch_array($result);
		$_SESSION['user_id'] = $data['id'];
		$_SESSION['user_vorname'] = $data['vorname'];
		$_SESSION['user_nachname'] = $data['nachname'];
		$_SESSION['user_email'] = $data['email'];
		$_SESSION['ser_geb_d'] = $data['geb_d'];
		$_SESSION['user_geb_m'] = $data['geb_m'];
		$_SESSION['user_geb_y'] = $data['geb_y'];
		$_SESSION['user_user'] = $data['user'];
		$_SESSION['user_status'] = $data['status'];		header('Location: index.php');
		exit;
	} else {
		header('Location: index.php?open=login&error=1');
		exit;
	}

?>
Übrigens würde ich die Fehlermeldung lieber direkt ausgeben anstatt auf eine Fehlermeldungsseite umzuleiten.
 
Zurück