authenticate.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /******************************************************************************
  3. * On démarre la session
  4. */
  5. session_start();
  6. // On reset les messages
  7. unset($_SESSION['message']);
  8. /******************************************************************************
  9. * On vérifie que la méthode HTTP utilisée est bien POST
  10. */
  11. if ($_SERVER['REQUEST_METHOD'] != 'POST')
  12. {
  13. header('Location: signin.php');
  14. exit();
  15. }
  16. // On vérifie qu'on a bien reçu les données en POST
  17. if ( !isset($_POST['login'],$_POST['password']) )
  18. {
  19. $_SESSION['message'] = "Some POST data are missing.";
  20. header('Location: signin.php');
  21. exit();
  22. }
  23. // On les sécurise les données POST.
  24. $login = htmlspecialchars($_POST['login']);
  25. $password = htmlspecialchars($_POST['password']);
  26. /******************************************************************************
  27. * On inclut le fichier contenant la définition de la classe User
  28. */
  29. require_once('models/User.php');
  30. //On crée l'utilisateur
  31. $user = new User($login,$password);
  32. try {
  33. // On vérifie qu'il existe dans la BDD
  34. if ( !$user->exists() )
  35. {
  36. $_SESSION['message'] = 'Wrong login/password.';
  37. header('Location: signin.php');
  38. exit();
  39. }
  40. }
  41. catch (PDOException $e) {
  42. // Si erreur lors de la création de l'objet PDO
  43. // (déclenchée par MyPDO::pdo())
  44. $_SESSION['message'] = $e->getMessage();
  45. header('Location: signin.php');
  46. exit();
  47. }
  48. catch (Exception $e) {
  49. // Si erreur durant l'exécution de la requête
  50. // (déclenchée par le throw de $user->exists())
  51. $_SESSION['message'] = $e->getMessage();
  52. header('Location: signin.php');
  53. exit();
  54. }
  55. /******************************************************************************
  56. * Si tout est ok, on se connecte et se rend sur welcome.php
  57. */
  58. $_SESSION['user'] = $login;
  59. header('Location: welcome.php');
  60. exit();