mirror of
https://github.com/BreizhHardware/ProjetS4COMWEB.git
synced 2026-01-18 16:47:35 +01:00
Merge pull request #20 from BreizhHardware/felix
Login and signup using ajax
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<link href="https://fonts.googleapis.com/css2?family=Just+Me+Again+Down+Here&family=Open+Sans&display=swap" rel="stylesheet">
|
||||
<link rel="stylesheet" href="src/css/styles.css">
|
||||
<script src="src/js/AJAX/utils.js" defer></script>
|
||||
<script src="src/js/AJAX/index.js" defer></script>
|
||||
<script src="src/js/AJAX/index.js" defer type="module"></script>
|
||||
<link rel="icon" href="src/img/favicon.png" type="image/x-icon"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -5,6 +5,7 @@ require_once '../php/constants.php';
|
||||
require_once '../php/db/dbconnect.php';
|
||||
require_once '../php/db/Search.php';
|
||||
require_once '../php/db/Login.php';
|
||||
require_once '../php/db/Signup.php';
|
||||
require_once '../php/db/Calendrier.php';
|
||||
require_once 'test/database.php';
|
||||
ini_set('display_errors', 1);
|
||||
@@ -65,10 +66,21 @@ $router->POST('/api/login/patient', ["mail", "password"], function($mail, $passw
|
||||
loginPatient::Login($pdo, $mail, $password);
|
||||
});
|
||||
|
||||
$router->PUT('/api/signup/patient', ["mail", "password", "name", "surname", "phone"], function($mail, $password, $name, $surname, $phone){
|
||||
global $pdo;
|
||||
SignupPatient::Insert($pdo, $mail, $password, $name, $surname, $phone);
|
||||
});
|
||||
|
||||
$router->POST('/api/login/medecin', ["mail", "password"], function($mail, $password){
|
||||
global $pdo;
|
||||
loginMedecin::Login($pdo, $mail, $password);
|
||||
});
|
||||
|
||||
$router->PUT('/api/signup/medecin', ["name", "surname", "mail", "password", "specialite", "phone", "postal"], function($name, $surname, $mail, $password, $specialite, $phone, $postal){
|
||||
global $pdo;
|
||||
SignupMedecin::insertMedecin($pdo, $name, $surname, $mail, $password, $specialite, $phone, $postal);
|
||||
});
|
||||
|
||||
$router->PUT('/api/requests', ["test"], function($test){
|
||||
echo json_encode($test);
|
||||
});
|
||||
|
||||
@@ -33,7 +33,7 @@ body{
|
||||
|
||||
#signup-sign-part{
|
||||
background-color: white;
|
||||
height: 75%;
|
||||
height: 80%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1em;
|
||||
@@ -159,6 +159,11 @@ margin-left: 6rem !important;
|
||||
margin-right: 24rem !important;
|
||||
}
|
||||
|
||||
.mx-25{
|
||||
margin-left: 25% !important;
|
||||
margin-right: 25% !important;
|
||||
}
|
||||
|
||||
.thumbnail{
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import {TokenDecode} from "./lib.js";
|
||||
console.log("index.js loaded");
|
||||
|
||||
|
||||
//Felix Part
|
||||
|
||||
function displaySearchResults(data) {
|
||||
@@ -285,7 +287,7 @@ function displayLoginUser() {
|
||||
container.innerHTML = "";
|
||||
container.className = 'd-flex flex-column justify-content-center text-center w-100 login-ui';
|
||||
container.innerHTML = `
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-6">
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-25">
|
||||
<div class="p-3 m-0 border-0 bd-example m-0 border-0" id="login-part">
|
||||
<div class="text-center align-content-center">
|
||||
<h5 class="text-center fw-bold">J'ai déjà un compte Doct'ISEN</h5>
|
||||
@@ -318,12 +320,13 @@ function displayLoginUser() {
|
||||
let password = document.getElementById("user-login-password").value;
|
||||
let data = "mail=" + mail + "&password=" + password;
|
||||
ajaxRequest('POST', "src/API/requests.php/api/login/patient", function (data) {
|
||||
if (data.success) {
|
||||
sessionStorage.setItem("user_id", data.id);
|
||||
sessionStorage.setItem("user_type", "patient");
|
||||
sessionStorage.setItem("user_mail", mail);
|
||||
sessionStorage.setItem("user_name", data.name);
|
||||
sessionStorage.setItem("user_surname", data.surname);
|
||||
if (data.message === "Login success") {
|
||||
const token_decoded = TokenDecode(data.token);
|
||||
sessionStorage.setItem("user_type", token_decoded.type);
|
||||
sessionStorage.setItem("user_id", token_decoded.id);
|
||||
sessionStorage.setItem("user_mail", token_decoded.mail);
|
||||
sessionStorage.setItem("user_name", token_decoded.name);
|
||||
sessionStorage.setItem("user_surname", token_decoded.surname);
|
||||
displayHome();
|
||||
} else {
|
||||
alert("Erreur lors de la connexion");
|
||||
@@ -340,7 +343,7 @@ function displayLoginPraticien() {
|
||||
container.innerHTML = "";
|
||||
container.className = 'd-flex flex-column justify-content-center text-center w-100 login-ui';
|
||||
container.innerHTML = `
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-6">
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-25">
|
||||
<div class="p-3 m-0 border-0 bd-example m-0 border-0" id="login-part">
|
||||
<div class="text-center align-content-center">
|
||||
<h5 class="text-center fw-bold">J'ai déjà un compte praticien Doct'ISEN</h5>
|
||||
@@ -372,13 +375,14 @@ function displayLoginPraticien() {
|
||||
let mail = document.getElementById("praticien-login-mail").value;
|
||||
let password = document.getElementById("praticien-login-password").value;
|
||||
let data = "mail=" + mail + "&password=" + password;
|
||||
ajaxRequest('POST', "src/API/requests.php/api/login/praticien", function (data) {
|
||||
if (data.success) {
|
||||
sessionStorage.setItem("user_id", data.id);
|
||||
sessionStorage.setItem("user_type", "praticien");
|
||||
sessionStorage.setItem("user_mail", mail);
|
||||
sessionStorage.setItem("user_name", data.name);
|
||||
sessionStorage.setItem("user_surname", data.surname);
|
||||
ajaxRequest('POST', "src/API/requests.php/api/login/medecin", function (data) {
|
||||
if (data.message === "Login success") {
|
||||
const token_decoded = TokenDecode(data.token);
|
||||
sessionStorage.setItem("user_type", token_decoded.type);
|
||||
sessionStorage.setItem("user_id", token_decoded.id);
|
||||
sessionStorage.setItem("user_mail", token_decoded.mail);
|
||||
sessionStorage.setItem("user_name", token_decoded.name);
|
||||
sessionStorage.setItem("user_surname", token_decoded.surname);
|
||||
displayHome();
|
||||
} else {
|
||||
alert("Erreur lors de la connexion");
|
||||
@@ -395,7 +399,7 @@ function displaySignUpPraticien() {
|
||||
container.innerHTML = "";
|
||||
container.className = 'd-flex flex-column justify-content-center text-center w-100 signup-ui-praticien';
|
||||
container.innerHTML = `
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-6" style="margin-top: -15%;">
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-25" style="margin-top: -15%;">
|
||||
<div class="p-3 m-0 border-0 bd-example border-0" id="signup-sign-part">
|
||||
<div class="text-center align-content-center">
|
||||
<h5 class="text-center fw-bold">Inscription praticien sur Doct'ISEN</h5>
|
||||
@@ -454,6 +458,34 @@ function displaySignUpPraticien() {
|
||||
document.getElementById("login-praticien2").addEventListener("click", function(event) {
|
||||
displayLoginPraticien();
|
||||
});
|
||||
document.getElementById("praticien-signup-button").addEventListener("click", function(event) {
|
||||
event.preventDefault();
|
||||
let name = document.getElementById("praticien-signup-name").value;
|
||||
let surname = document.getElementById("praticien-signup-surname").value;
|
||||
let mail = document.getElementById("praticien-signup-mail").value;
|
||||
let mailConfirm = document.getElementById("praticien-signup-mail-confirm").value;
|
||||
let password = document.getElementById("praticien-signup-password").value;
|
||||
let passwordConfirm = document.getElementById("praticien-signup-password-confirm").value;
|
||||
let phone = document.getElementById("praticien-signup-phone").value;
|
||||
let specialty = document.getElementById("praticien-signup-specialty").value;
|
||||
let postal = document.getElementById("praticien-signup-postal").value;
|
||||
if (mail !== mailConfirm) {
|
||||
alert("Les adresses mail ne correspondent pas");
|
||||
return;
|
||||
}
|
||||
if (password !== passwordConfirm) {
|
||||
alert("Les mots de passe ne correspondent pas");
|
||||
return;
|
||||
}
|
||||
let data = "name=" + name + "&surname=" + surname + "&mail=" + mail + "&password=" + password + "&specialite=" + specialty + "&phone=" + phone + "&postal=" + postal;
|
||||
ajaxRequest('PUT', "src/API/requests.php/api/signup/medecin", function (data) {
|
||||
if (data.success) {
|
||||
displayLoginPraticien();
|
||||
} else {
|
||||
alert("Erreur lors de l'inscription");
|
||||
}
|
||||
}, data);
|
||||
});
|
||||
}
|
||||
|
||||
function displaySignUpUser() {
|
||||
@@ -461,7 +493,7 @@ function displaySignUpUser() {
|
||||
container.innerHTML = "";
|
||||
container.className = 'd-flex flex-column justify-content-center text-center w-100 signup-ui';
|
||||
container.innerHTML = `
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-6" style="margin-top: -15%;">
|
||||
<div class="h-100 d-flex flex-column gap-0 justify-content-center text-center w-50 mx-25" style="margin-top: -15%;">
|
||||
<div class="p-3 m-0 border-0 bd-example border-0" id="signup-sign-part">
|
||||
<div class="text-center align-content-center">
|
||||
<h5 class="text-center fw-bold">Inscription sur Doct'ISEN</h5>
|
||||
@@ -530,14 +562,9 @@ function displaySignUpUser() {
|
||||
return;
|
||||
}
|
||||
let data = "name=" + name + "&surname=" + surname + "&mail=" + mail + "&password=" + password + "&phone=" + phone;
|
||||
ajaxRequest('POST', "src/API/requests.php/api/signup/patient", function (data) {
|
||||
ajaxRequest('PUT', "src/API/requests.php/api/signup/patient", function (data) {
|
||||
if (data.success) {
|
||||
sessionStorage.setItem("user_id", data.id);
|
||||
sessionStorage.setItem("user_type", "patient");
|
||||
sessionStorage.setItem("user_mail", mail);
|
||||
sessionStorage.setItem("user_name", name);
|
||||
sessionStorage.setItem("user_surname", surname);
|
||||
displayHome();
|
||||
displayLoginUser();
|
||||
} else {
|
||||
alert("Erreur lors de l'inscription");
|
||||
}
|
||||
|
||||
@@ -11,4 +11,6 @@ function TokenDecode(token){
|
||||
mail: decodedToken[4]
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export {TokenDecode};
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
class SignupPatient
|
||||
{
|
||||
public static function Insert($pdo,$name,$surname,$mail,$password,$phone){
|
||||
public static function Insert($pdo, $mail, $password, $name, $surname, $phone): void
|
||||
{
|
||||
$password = password_hash($password, PASSWORD_ARGON2ID);
|
||||
$query = $pdo->prepare("INSERT INTO patient (p_name,p_surname,p_mail,p_password,p_phone) VALUES (:name,:surname,:mail,:password,:phone)");
|
||||
$query->bindParam(':name', $name);
|
||||
@@ -17,9 +18,9 @@ class SignupPatient
|
||||
$query->execute();
|
||||
$result = $query->fetch(PDO::FETCH_ASSOC);
|
||||
if ($result['count'] == 0) {
|
||||
return false;
|
||||
Response::HTTP401(['message' => 'Signup failed', 'token' => 0]);
|
||||
} else {
|
||||
return true;
|
||||
Response::HTTP200(['message' => 'Signup success', 'success' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +28,7 @@ class SignupPatient
|
||||
|
||||
class SignupMedecin
|
||||
{
|
||||
public static function insertMedecin($pdo,$name,$surname,$mail,$password,$specialite,$phone,$postal) {
|
||||
public static function insertMedecin($pdo, $name, $surname, $mail, $password, $specialite, $phone, $postal) {
|
||||
$password = password_hash($password, PASSWORD_ARGON2ID);
|
||||
$query = $pdo->prepare("INSERT INTO medecin (m_name,m_surname,m_mail,m_password,m_specialty,m_phone,m_postal) VALUES (:name,:surname,:mail,:password,:specialite,:phone,:postal)");
|
||||
$query->bindParam(':name', $name);
|
||||
@@ -44,9 +45,9 @@ class SignupMedecin
|
||||
$query->execute();
|
||||
$result = $query->fetch(PDO::FETCH_ASSOC);
|
||||
if ($result['count'] == 0) {
|
||||
return false;
|
||||
Response::HTTP401(['message' => 'Signup failed', 'token' => 0]);
|
||||
} else {
|
||||
return true;
|
||||
Response::HTTP200(['message' => 'Signup success', 'success' => true]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user