loginscript stört sich nicht an falschen eingaben

lennsch

Grünschnabel
Vielleicht liegts auch an der Uhrzeit, aber was mache ich Falsch? Das Script läuft einfach durch, egal welche Wert im vorigem Formular eingegeben wurden...
$name_okay=der benutzername
$pwmd5= das pw md5 verschlüsselt

PHP:
//Datenbank Abfrage
$abfrage_name=mysql_query ("SELECT * FROM user WHERE name = '.$name_okay.'") OR die(mysql_error);
$reihen = mysql_num_fields($abfrage_name) OR die();
if ($reihen <= 0)
{
echo("<br>Inkorrekte Logindaten<br>");
}

$abfrage_pw = mysql_query ("SELECT * FROM user WHERE passwort = '.$pwmd5.'") or die(mysql_error);
$reihen1 = mysql_num_fields($abfrage_pw) or die();
if ($reihen1 <= 0)
{
	echo("Falsches Passwort<br>");
}

danke schonmal!
 
Natuerlich laeuft das Script durch, es tritt ja kein Fehler auf. Nur wird evtl. vorhandener Code nach Deinen Abfragen auch ausgefuehrt, und das ist wohl was Du vermeiden willst.
Weiterhin solltest Du Deine beiden SQL-Queries zusammenpacken, denn so guckst Du erst nach einem User mit dem eingegebenen Usernamen und dann nach einem User mit dem eingegebenen Passwort, wobei dieser User anhand Deines Codes auch durchaus ein ganz anderer sein koennte.

Probier es mal so:
PHP:
$users=mysql_query("select * from user where name='".$name_okay."' and passwort='".$pwmd5."'");
$user=mysql_fetch_assoc($users);
if (!empty($user))
{
 echo 'Login erfolgreich';
 //hier kannst Du dann z.B. die Daten in die Session und/oder Cookies schreiben
}
else
{
 echo 'Login fehlgeschlagen';
 //hier koenntest Du gleich wieder zum Login weiterleiten, oder einen Link dorthin ausgeben
}
 
Folgendes wäre auch möglich:
PHP:
<?php

	$query = '
		SELECT
		        1
		  FROM
		        `user`
		  WHERE
		        `name`     = "'.mysql_real_escape_string($name_okay).'"
		    AND `passwort` = "'.$pwmd5.'"
		';
	$result = mysql_query($query)
		or die(mysql_error());
	if( mysql_num_rows($result) <= 0 ) {
		// Login schlug fehl
	} else {
		// Login war erfolgreich
	}

?>
 
Zurück