sql >> Databasteknik >  >> RDS >> Mysql

logga in som användare eller admin från 2 olika tabeller

Du måste ange båda tabellerna med email kolumn:

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

En annan möjlighet är att använda en explicit JOIN med alias' (aliaset är bara för att förkorta saker, du behöver inte använda dem.):

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

Om du gör detta behöver du bara redovisa eamil i en kolumn i en tabell som JOIN ser till att du bara får de rader som har en matchande e-postadress. Om frågan är tom finns inte e-postmeddelandet i båda.

Redigera

Om du vill bestämma vart du ska gå baserat på en användares roll bör du konsolidera alla användare i en tabell med en kolumn som avgränsar användarens roll:

SELECT * FROM users WHERE email = '$inputEmail' 

Sedan PHP när du har hämtat data:

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.';
}        

Varning!

...som andra har sagt...

Lilla Bobby säger ditt skript är i riskzonen för SQL Injection Attacks. . Till och med rymma strängen är inte säkert!

Jag hatar när folk säger "Jag har inte kommit så långt..." eller "Denna webbplats kommer inte att vara offentlig..." eller "Det är bara för skolan, så säkerhet spelar ingen roll..." . Om lärare och professorer inte pratar om säkerhet från dag ett så gör de det fel. Utmana dem. De lär ut slarviga och farliga kodningsmetoder som eleverna måste lära sig av senare. Jag hatar också när folk säger, "Jag lägger till säkerhet senare..." eller "Säkerhet är inte viktigt nu..." eller "Ignorera säkerhetsrisken..." .

Lagra aldrig lösenord med oformaterad text! Använd PHP:s inbyggda funktioner att hantera lösenordssäkerhet. Om du använder en PHP-version mindre än 5.5 kan du använda password_hash() kompatibilitetspaket . Det är inte nödvändigt att escape lösenord eller använd någon annan rengöringsmekanism på dem innan hash. Om du gör det ändras lösenordet och orsakar onödig ytterligare kodning.




  1. Hur man testar för överlappande datum i PostgreSQL

  2. MySQL-fel 1264:värde utanför intervallet för kolumn

  3. PHP - Skapa kryssruta genom att använda posterna från MySQL-datumbasen som värden

  4. Bästa designmönstret för att stänga databasanslutning när undantag inträffar