• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Probelme mit Login-Skript

allesinmac

Starking
Registriert
28.12.03
Beiträge
219
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.
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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.
 

allesinmac

Starking
Registriert
28.12.03
Beiträge
219
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.)
 

Slashwalker

Winterbanana
Registriert
15.05.06
Beiträge
2.213
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.