sql >> Database >  >> RDS >> Mysql

inloggen als gebruiker of beheerder vanuit 2 verschillende tabellen

U moet beide tabellen specificeren met de email kolom:

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

Een andere mogelijkheid is het gebruik van een expliciete JOIN met alias' (De alias' zijn alleen om dingen in te korten, je hoeft ze niet te gebruiken.):

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

Als u dit doet, hoeft u alleen de eamil in één kolom van één tabel te verantwoorden als de JOIN zorgt ervoor dat u alleen die rijen krijgt met een overeenkomend e-mailadres. Als de zoekopdracht leeg is, bestaat de e-mail niet in beide.

Bewerken

Als u wilt beslissen waar u heen wilt op basis van de rol van een gebruiker, moet u alle gebruikers consolideren in één tabel met een kolom die de rol van de gebruiker afbakent:

SELECT * FROM users WHERE email = '$inputEmail' 

Dan de PHP zodra je de gegevens hebt opgehaald:

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

Waarschuwing!

... zoals anderen al hebben gezegd ...

Kleine Bobby zegt uw script loopt risico op SQL-injectie-aanvallen. . Zelfs ontsnappen aan de string is niet veilig!

Ik haat het als mensen zeggen "Ik ben nog niet zo ver..." of "Deze site zal niet openbaar zijn..." of "Het is alleen voor school, dus beveiliging maakt niet uit..." . Als docenten en professoren het niet vanaf de eerste dag over veiligheid hebben, doen ze het verkeerd. Daag ze uit. Ze leren slordige en gevaarlijke codeerpraktijken die studenten later zullen moeten afleren. Ik haat het ook als mensen zeggen:"Ik zal later beveiliging toevoegen..." of "Veiligheid is nu niet belangrijk..." of "Negeer het beveiligingsrisico..." .

Sla nooit wachtwoorden in platte tekst op! Gebruik PHP's ingebouwde functies wachtwoordbeveiliging afhandelen. Als u een PHP-versie van minder dan 5.5 gebruikt, kunt u de password_hash() gebruiken compatibiliteitspakket . Het is niet nodig om wachtwoorden te ontsnappen of gebruik een ander reinigingsmechanisme voor het hashen. Hierdoor verandert het wachtwoord en veroorzaakt onnodige extra codering.




  1. ORDER BY optimaliseren

  2. Back-up van MySQL-gebruikers

  3. Is kruistabelindexering mogelijk?

  4. Query om dubbele gegevens uit de MYSql-tabel te vinden en te verwijderen