email
で両方のテーブルを指定する必要があります 列:
SELECT *
FROM sollicitant, bedrijf
WHERE sollicitant.email = '$inputEmail'
AND bedrijf.email = '$inputEmail'
もう1つの可能性は、エイリアス'で明示的なJOINを使用することです(エイリアス'は単に短縮するためのものであり、使用する必要はありません):
SELECT *
FROM sollicitant s, bedrijf b
ON s.email = b.email
WHERE s.email = '$inputEmail'
これを行うことは、1つのテーブルの1つの列のeamilをJOIN
として説明するだけでよいことを意味します。 一致する電子メールを持つ行のみを取得するようにします。クエリが空の場合、メールは両方に存在しません。
編集
ユーザーの役割に基づいてどこに行くかを決定する場合は、すべてのユーザーを1つのテーブルに統合して、ユーザーの役割を示す列を作成する必要があります。
SELECT * FROM users WHERE email = '$inputEmail'
次に、データをフェッチした後のPHP:
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.';
}
警告!
...他の人が言ったように...Little Bobby スクリプトSQLインジェクション攻撃のリスクがあります。 。 文字列をエスケープする> 安全ではありません!
人々が「私はそれほど遠くない...」と言うのは嫌いです... または「このサイトは公開されません...」 または「学校専用なので、セキュリティは関係ありません...」 。教師と教授が最初からセキュリティについて話していなければ、彼らはそれを間違っています。それらに挑戦します。彼らは、学生が後で学ばなくてはならない、ずさんで危険なコーディングの実践を教えています。 「後でセキュリティを追加します...」と言われるのも嫌いです。 または「セキュリティは今は重要ではありません...」 または「セキュリティリスクを無視する...」 。
プレーンテキストのパスワードは絶対に保存しないでください! PHPのpassword_hash()
を使用できます。 互換性パック
。 パスワードをエスケープする必要はありません
または、ハッシュする前に他のクレンジングメカニズムを使用します。そうすることで変更 パスワードと不要な追加コーディングを引き起こします。