Supportnet / Forum / Skripte(PHP,ASP,Perl...)
2 akzeptable Bedingungen in einer If-Abfrage in PHP
Frage
Hallo!
Ich möchte in PHP einen Login erstellen. Soweit funktioniert auch alles, aber nur mit einem User. Wenn ich also 2 User habe, dann muss ich per Code 2 Bedingungen abfragen (User1-Kennwort1 ODER User2-Kennwort2). Nur, wie bringe ich dieses "oder" in die If-Abfrage?
Code sieht so aus:
if ($username == 'user1' && $passwort == 'kennwort1')
{
$_SESSION['angemeldet'] = true;
...
}
Nach 'kennwort1' muss jetzt die oder-Abfrage, also die prüft, ob nicht doch 'user2' und 'kennwort2' eingegeben wurden.
Kann mir jemand weiterhelfen?
Wäre cool.
Antwort 1 von Supermax
Ich würde in diesem Fall Username/Paßwortpaare als Array definieren, und dieses in einer Schleife abfragen, also
Das hat den Vorteil, daß du einfach nur das Array erweitern mußt, um weitere Benutzer hinzuzufügen.
Du solltest darüber hinaus nicht die globalen Variaben $username und $passwort verwenden, sondern besser $_POST['username'] und $_POST['passwort']. Dies ist nicht nur sicherer, sondern dient auch dazu, daß deine Seite auch mit zukünftigen PHP-Versionen kompatibel bleibt.
$zugangsdaten = array(
'username1' => 'passwort1',
'username2' => 'passwort2'
);
foreach($zugangsdaten as $un => $pw) {
if ( ($username == $un) && ($passwort == $pw) ) {
$_SESSION['angemeldet'] = true;
break;
}
}Das hat den Vorteil, daß du einfach nur das Array erweitern mußt, um weitere Benutzer hinzuzufügen.
Du solltest darüber hinaus nicht die globalen Variaben $username und $passwort verwenden, sondern besser $_POST['username'] und $_POST['passwort']. Dies ist nicht nur sicherer, sondern dient auch dazu, daß deine Seite auch mit zukünftigen PHP-Versionen kompatibel bleibt.
Antwort 2 von schorschilein
ich würds so machen:
$user = array(
'username1' => 'passwort1',
'username2' => 'passwort2'
);
if(isset($user[$username]) && $user[$username]==$passwort)
{
$_SESSION['angemeldet'] = true;
...
}
Antwort 3 von ricc
Perfekt! Auf ein Array wär ich gar nicht gekommen.
Danke :-)
Danke :-)

