• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Probelme mit Login-Skript

allesinmac

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