Probrem bei der Abfrage der MYSQL-Datenbank

Matthias1990

Grünschnabel
Hallo zusammen,
ich habe erst vor kurzem damit angefangen mich mit PHP & MySQL zubeschäftigen und nun wollte ich heute wieder ein bischen weiter üben jedoch ergaben sich dort eigene Probleme.
Und zwar wollte Ich zunächst nur eine Datenbank einrichten das sich User registrieren können. z.B. Realname, Nickname, Passwort kann man eingeben.
Nun sollte man sich ja auch einloggen können, jedoch habe ich das nicht hinbekommen.
PHP:
<?php
include("dbconnect.php");
$pw = $_POST["pw"];
$nick = $_POST["nick"];
if ($pw == "" || $nick == "") echo '<font color="#FF0000"><b>Bitte füllen die Felder aus!</b></font>';
$ergebnis = mysql_query("SELECT * FROM registration ORDER BY id");
while($row = mysql_fetch_assoc($ergebnis)) {
if($row['nick'] == $nick && $row['pw'] == $pw){ $abbrechen = "1"; } else { }
}
if($abbrechen != "1") {
echo '  Seiteninhalt nach loggin ';
} ELSE { echo 'Falsche Loggin Daten';
}
?>

Vielleicht könntet ihr mir ja dort weiterhelfen, den ich seh den Fehler nicht,
dort steht immer beim Logn das die Logindaten Falsch sind.
 
Hmm, mit deinem Source kann ich jetzt nicht sooo viel anfangen (besser gesagt, ich sehe den Fehler auch nicht ;)

Aber ich habe vor kurzem auch so was machen müssen, ich habs so gemacht:

index.php:
PHP:
<html>
	<head>
		<title>Einloggen</title>
	</head>
	<body>
		<form action="login.php" method="post">
			<table>
				<tr>
					<th colspan="2">
						Bitte geben Sie hier Ihre Daten ein:
					</th>
				</tr>
				<tr>
					<td>
						Benutzername:
					</td>
					<td>
						<input type="text" name="name" />
					</td>
				</tr>
				<tr>
					<td>
						Passwort:
					</td>
					<td>
						<input type="password" name="pwd" />
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<div align="center">
							<input type="submit" value="Login" />
						</div>
					</td>
				</tr>
			</table>
			<?php
				if($_REQUEST['meldung']=="1")
				{
					echo "<font color=\"red\"><b>Unbekannter Benutzername und/oder falsches Passwort!</b></font>";
				}
			?>
		<form>
	</body>
</html>

login.php:
PHP:
<?php 
	if($_REQUEST["name"]<>"" && $_REQUEST["pwd"]<>"")
	{
		$name=$_REQUEST['name'];
		$pw=$_REQUEST['pwd'];
		
		include("connect.php");
		
		$query = "SELECT * FROM `mitglieder` ORDER BY `ID` ASC"; 
		$result = mysql_query($query);
                $pw_ist_richtig=false;

		while ($line = mysql_fetch_object($result))
		{
			if($line->Name==$name && $line->Password==$pw)
			{
				$pw_ist_richtig=true;
			}
		}
	}
	
       if($pw_ist_richtig==true)
       {
            //Code, wenn Passwort richtig
       }
       else
       {
            header("location: index.php?meldung=1");
       }
?>

Hoffe, das hilft dir weiter...
 
Für die login.php bitte folgendes verwenden, denn obiger Code durchläuft sämtliche Userdatensätze, um den Login vorzunehmen, das kann man aber schon (My)SQL übernehmen lassen:
PHP:
<?php 
    if(isset($_REQUEST["name"]) && isset($_REQUEST["pwd"]) && !empty($_REQUEST["name"]) && !empty($_REQUEST["pwd"]))
    {
        $name = $_REQUEST['name'];
        $pw = $_REQUEST['pwd'];
        
        include("connect.php");
        
        $query = sprintf("SELECT COUNT(`Name`) FROM `mitglieder` WHERE `Name` = '%s' AND `Password` = '%s'", mysql_real_escape_string($name), mysql_real_escape_string($pw)); // Gegen SQL-Injections absichern
        $result = mysql_query($query);
                
        list($success) = mysql_fetch_row($result);
    }
    
       if($success > 0) // Wurde mindestens ein Datensatz gefunden, bei dem Username und Passwort übereinstimmen, dann war der Login erfolgreich, ansonsten zum Formular weiterleiten
       {
            //Code, wenn Passwort richtig
       }
       else
       {
            header("Location: index.php?meldung=1");
       }
?>
 
Stimmt, hab ich übersehen ;)

Mein Lehrer wollt halt nur so was haben, also hab ich halt schnell auf 5 min was geschrieben ;) Deins ist echt besser :)
 
Zurück