Hallo ihr alle, ich habe mich gestern mal ran gesetzt und versucht ein eigenes kleines Login-Skript zu basteln. Es funktioniert eigentlich auch recht gut. Nur möchte ich viele Accounts einrichten mit unterschiedlichen Rechten. Und genau da habe ich ein kleines Problem. Das will irgendwie nicht klappen. Anscheint liest er alles aus der Datenbank was er findet. Hier mal meine DB-Abfrage: Code: // Hier wird nun die Login-DB abgerufen $ergeb=mysql_query("SELECT * FROM hp_login"); while($array=mysql_fetch_array($ergeb)) { // Hier wird das Passwort verschluesselt $pw_2t = md5($pw_safe); ### Der Login wird geprueft ### if($array['user']=="$user_form" && $array['pw']=="$pw_2t") { // Zugangsdaten sind RICHTIG echo '<h2>Willkommen! Sie werden weitergeleitet...</h2>'; exit (); }else{ // Zugangsdaten sind FALSCH echo "<b>Fehler: Zugangsdaten sind falsch!</b><p>"; } Wo ist der Fehler? Ich kann ja bei der DB-Abfrage kein LIMIT 0,1 machen weil er ja sonst nur den ersten DB-Satz ausliest. Aber er soll ja alles lesen, weil es ja mehrere Accounts gibt und nicht nur einen.
Du musst den SQL Abruf eingrenzen. In etwa so: Code: $ergeb=mysql_query("SELECT * FROM hp_login WHERE user=".$_POST['user']." AND password=".md5($_POST['password'])); Somit liest er nur den Datensatz aus, bei dem Username und Passwort den Eingaben im Formular entspricht. Also musst du dann nur prüfen, ob ein Ergebnis existiert. Existiert kein Ergebnis, stimmen die Zugangsdaten nicht.
Aso. Dann ist die if Überprüfung dann auch überflüssig oder? Code: if($array['user']=="$user_id" && $array['pw']=="$pw_safe") { WIe mache ich das am genschicksten das der User dann Feedback bekommt ob der Login nun geklappt hat oder nicht? (Hab son Login-Skript noch nicht programmiert deshalb meine Frage.)
Die if Bedingung muss dann in etwa so lauten: Code: if(mysql_num_rows($ergebnis) !=0 ) { // User eingeloggt echo '<h1>Willkommen $ergbnis['user']</h1>'; } else{ echo 'Fehler: Zugangsdaten sind falsch!'; } Alles natürlich ohne Gewehr Ich bin nicht so der PHPler.