Mysql
 sql >> база данни >  >> RDS >> Mysql

влизане като потребител или администратор от 2 различни таблици

Трябва да посочите и двете таблици с email колона:

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

Друга възможност е използването на изрично JOIN с псевдоним (Псевдонимът е само за съкращаване на нещата, не е нужно да ги използвате.):

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

Това означава, че трябва да отчетете само eamil в една колона на една таблица като JOIN гарантира, че получавате само тези редове със съвпадащ имейл. Ако заявката е празна, имейлът не съществува и в двете.

Редактиране

Ако искате да решите къде да отидете въз основа на ролята на потребителя, трябва да консолидирате всички потребители в една таблица с колона, която очертава ролята на потребителя:

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

Внимание!

...както други казаха...

Малкият Боби казва вашият скрипт е изложен на риск от атаки с инжектиране на SQL. . Дори избяга от низа не е безопасно!

Мразя, когато хората казват „Не съм толкова далеч...“ или „Този ​​сайт няма да бъде публичен...“ или „Това е само за училище, така че сигурността няма значение...“ . Ако учителите и професорите не говорят за сигурност от първия ден, те го правят погрешно. Предизвикайте ги. Те преподават небрежни и опасни практики за кодиране, които учениците ще трябва да отучат по-късно. Също така мразя, когато хората казват:„Ще добавя сигурност по-късно...“ или „Сигурността не е важна сега...“ или „Игнорирайте риска за сигурността...“ .

Никога не съхранявайте пароли с обикновен текст! Моля, използвайте вградените функции на PHP за справяне със сигурността с парола. Ако използвате версия на PHP по-малка от 5.5, можете да използвате password_hash() пакет за съвместимост . Не е необходимо да избягате пароли или използвайте друг почистващ механизъм върху тях преди хеширане. Това променя паролата и причинява ненужно допълнително кодиране.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой е най-добрият начин за свързване на десетични / двойни / float стойности с PDO в PHP?

  2. PHP/MySQL - Синтактична грешка на SQL?

  3. php връзка с единична база данни, лоша практика ли е този код?

  4. Как да ИЗБЕРЕТЕ най-новите четири артикула на категория?

  5. Последна дата и час от уникален индекс на mysql