adduser.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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: signup.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'],$_POST['confirm']) )
  18. {
  19. $_SESSION['message'] = "Some POST data are missing.";
  20. header('Location: signup.php');
  21. exit();
  22. }
  23. // On les sécurise les données POST.
  24. $login = htmlspecialchars($_POST['login']);
  25. $password = htmlspecialchars($_POST['password']);
  26. $confirm = htmlspecialchars($_POST['confirm']);
  27. if ( $password !== $confirm )
  28. {
  29. $_SESSION['message'] = "The two passwords differ.";
  30. header('Location: signup.php');
  31. exit();
  32. }
  33. /******************************************************************************
  34. * On inclut le fichier contenant la définition de la classe User
  35. */
  36. require_once('models/User.php');
  37. //On crée l'utilisateur
  38. $user = new User($login,$password);
  39. try {
  40. // On crée l'utilisateur dans la BDD
  41. $user->create();
  42. }
  43. catch (PDOException $e) {
  44. // Si erreur lors de la création de l'objet PDO
  45. // (déclenchée par MyPDO::pdo())
  46. $_SESSION['message'] = $e->getMessage();
  47. header('Location: signup.php');
  48. exit();
  49. }
  50. catch (Exception $e) {
  51. // Si erreur durant l'exécution de la requête
  52. // (déclenchée par le throw de $user->create())
  53. $_SESSION['message'] = $e->getMessage();
  54. header('Location: signup.php');
  55. exit();
  56. }
  57. /******************************************************************************
  58. * Si tout est ok, on indique que le compte est crée et on se rend sur signin.php
  59. */
  60. $_SESSION['message'] = "Account created! Now, signin.";
  61. header('Location: signin.php');
  62. exit();