Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anmeldung als Benutzer oder Administrator von 2 verschiedenen Tabellen aus

Sie müssen beide Tabellen mit dem email angeben Spalte:

SELECT * 
FROM sollicitant, bedrijf 
WHERE sollicitant.email = '$inputEmail' 
AND bedrijf.email = '$inputEmail'

Eine andere Möglichkeit ist die Verwendung eines expliziten JOIN mit Alias' (Die Alias' dienen nur der Abkürzung, Sie müssen sie nicht verwenden.):

SELECT *
FROM sollicitant s, bedrijf b
ON s.email = b.email
WHERE s.email = '$inputEmail' 

Dies bedeutet, dass Sie die E-Mail nur in einer Spalte einer Tabelle als JOIN berücksichtigen müssen stellt sicher, dass Sie nur die Zeilen mit einer übereinstimmenden E-Mail erhalten. Wenn die Abfrage leer ist, existiert die E-Mail in beiden nicht.

Bearbeiten

Wenn Sie basierend auf der Rolle eines Benutzers entscheiden möchten, wohin Sie gehen möchten, sollten Sie alle Benutzer in einer Tabelle mit einer Spalte konsolidieren, die die Rolle des Benutzers beschreibt:

SELECT * FROM users WHERE email = '$inputEmail' 

Dann das PHP, sobald Sie die Daten abgeholt haben:

if('sollicitant' == $row['role']) {
    header('Location: sollicitant.php');
    exit();
} elseif ('bedrijf' == $row['role']) {
    header('Location: befrijf.php');
    exit();
} else {
    echo 'There is a problem with your login.';
}        

Warnung!

...wie andere schon sagten...

Little Bobby sagt Ihr Skript ist einem Risiko für SQL-Injection-Angriffe ausgesetzt. . Sogar das Maskieren der Zeichenfolge ist nicht sicher!

Ich hasse es, wenn Leute sagen "Ich bin noch nicht so weit..." oder "Diese Seite wird nicht öffentlich sein..." oder "Es ist nur für die Schule, also spielt die Sicherheit keine Rolle..." . Wenn Lehrer und Professoren nicht vom ersten Tag an über Sicherheit sprechen, machen sie etwas falsch. Fordern Sie sie heraus. Sie lehren schlampige und gefährliche Programmierpraktiken, die die Schüler später verlernen müssen. Ich hasse es auch, wenn Leute sagen:"Ich füge später Sicherheit hinzu..." oder "Sicherheit ist jetzt nicht wichtig..." oder "Sicherheitsrisiko ignorieren..." .

Speichern Sie niemals Klartext-Passwörter! Bitte verwenden Sie die integrierten Funktionen von PHP um die Passwortsicherheit zu handhaben. Wenn Sie eine PHP-Version kleiner als 5.5 verwenden, können Sie den password_hash() verwenden Kompatibilitätspaket . Es ist nicht notwendig, Kennwörter zu maskieren oder verwenden Sie vor dem Hashing einen anderen Reinigungsmechanismus. Dadurch Änderungen das Passwort und verursacht unnötige zusätzliche Codierung.