2 akzeptable Bedingungen in einer If-Abfrage in PHP
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 schreiben
Antwort 1 von Supermax vom 04.11.2019, 14:48 Options
Ich würde in diesem Fall Username/Paßwortpaare als Array definieren, und dieses in einer Schleife abfragen, also
$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 vom 04.11.2019, 14:58 Options
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 vom 04.11.2019, 15:05 Options
Perfekt! Auf ein Array wär ich gar nicht gekommen.
Danke :-)