Management of errors during registration (unique nickname, unique email, verification of special characters, size of name and first name more than 3 letters...)

listePrive
Emre KARTAL 2 years ago
parent 7bc62f2ba7
commit bef27714ca

@ -2,54 +2,47 @@
class Validation {
static function val_form_user(string &$nom, string &$prenom, string &$pseudo, string &$mdp, string &$email, &$dVueEreur) {
static function val_form_user(string &$nom, string &$prenom, string &$pseudo, string &$mdp, string &$email, &$dVueErreur) {
//Vérification Nom
$nom = Validation::cleanString($nom);
$nom = Validation::val_string($nom);
if ($nom == NULL) {
$dVueEreur[] = "Veuillez revoir le nom*";
$dVueErreur['nom'] = "Le nom ne peut pas comporter de caractère spécial*";
}else if(strlen($nom)<3){
$dVueErreur['nom'] = "Le nom doit comporter au moins 3 caractères*";
}
//Vérification Prenom
$prenom = Validation::cleanString($prenom);
$prenom = Validation::val_string($prenom);
if ($prenom == NULL) {
$dVueEreur[] = "Veuillez revoir le prenom*";
$dVueErreur['prenom'] = "Le prenom ne peut pas comporter de caractère spécial*";
}else if(strlen($prenom)<3){
$dVueErreur['prenom'] = "Le prenom doit comporter au moins 3 caractères*";
}
// //Vérification Email
// $prenom = val_mail($prenom,$dVueEreurdVue);
// if ($prenom == NULL) {
// $dVueEreur[] = "Veuillez revoir le mail*";
// }
// //Vérification Pseudo
// if (!isset($pseudo)||$pseudo=="") {
// $dVueEreur[] = "pas de pseudo";
// $pseudo="";
// $i++;
// }
// val_string($pseudo,$i,$dVueEreur);
// //Vérification Mot de Passe
// if (!isset($mdp)||$mdp=="") {
// $dVueEreur[] = "pas de mot de passe";
// $mdp="";
// $i++;
// }
// val_string($mdp,$i,$dVueEreur);
//Vérification Email
$email = Validation::val_mail($email);
if ($email == NULL) {
$dVueErreur['mail'] = "Format du mail non-respecter*";
}
//Vérification Pseudo
$pseudo = Validation::val_string($pseudo);
if ($pseudo == NULL) {
$dVueErreur['pseudo'] = "Le pseudo ne peut pas comporter de caractère spécial*";
}else if(strlen($pseudo)<5){
$dVueErreur['pseudo'] = "Le pseudo doit comporter au moins 5 caractères*";
}
// if (!preg_match('/^.{5,}$/', $mdp)) {
// $dVueEreur[] = "Mot de passe trop léger : Plus de 5 caractères minimum !";
// $i++;
// }
if (!preg_match('/^.{5,}$/', $mdp)) {
$dVueErreur['password'] = "Mot de passe trop léger : Plus de 5 caractères minimum !";
}
// if($i>0){
// return false;
// }
// return true;
if(count($dVueErreur)>0){
throw new Exception("Erreur lors de l'inscription*");
}
}
@ -79,6 +72,14 @@ class Validation {
return null;
}
static function val_string(string &$str) {
if(filter_var($str, FILTER_SANITIZE_STRING)!=$str)
{
return null;
}
return $str;
}
static function cleanInt(string &$int) {
$int = preg_replace('/[^0-9]/', '', $int);
if($int == null || $int == '')

@ -78,13 +78,19 @@ class CtrlVisiteur {
global $rep,$vues;
try{
$val = MdlVisiteur::CreerUtilisateur();
$val = MdlVisiteur::CreerUtilisateur($dVueErreur);
$result=MdlUtilisateur::Connection();
$action=NULL;
$this->ConsulterListePublic($dVueErreur);
}
catch (Exception $e)
{
$ErreurLog=$e->getMessage();
require ($rep.$vues['inscription']);
}
catch (PDOException $e)
{
$ErreurLog=$e->getMessage();
require ($rep.$vues['inscription']);
}
}
@ -129,7 +135,6 @@ class CtrlVisiteur {
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
}
function SupprimerListe(array $dVueErreur){
@ -139,7 +144,6 @@ class CtrlVisiteur {
$taches = MdlVisiteur::RecupererTache();
$action=NULL;
require ($rep.$vues['listPublic']);
}
}//fin class

@ -7,20 +7,17 @@ class MdlVisiteur
}
public static function CreerUtilisateur(){
global $dVueEreur;
public static function CreerUtilisateur(&$dVueErreur){
$userGtw = new UtilisateurGateway();
Validation::val_form_user($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["password"],$_POST["mail"],$dVueEreur);
Validation::val_form_user($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["password"],$_POST["mail"],$dVueErreur);
$userGtw->isExisteViaMail($_POST["mail"]);
$userGtw->isExisteViaPseudo($_POST["pseudo-Form"]);
$hash = password_hash($_POST["password"], PASSWORD_DEFAULT);
// if(count($dVueEreur)!=0){
// return null;
// }
$userGtw->AjouterUtilisateur($_POST["nom-Form"],$_POST["prenom-Form"],$_POST["pseudo-Form"],$_POST["mail"],$hash);
}
public static function RecupererListePublic(){
$userGtw = new ListeGateway();
return $userGtw->getListePublic(0,10);
}

@ -20,9 +20,34 @@ class UtilisateurGateway{
public function SupprimerUtilisateur(int $id){
$query="DELETE FROM ToDoList_Utilisateur WHERE id=:id";
$this->con->executeQuery($query, array(
'id' => array($id, PDO::PARAM_STR)));
'id' => array($id, PDO::PARAM_INT)));
}
// Vérifie que le mail n'existe pas
public function isExisteViaMail($mail){
$query="SELECT * FROM ToDoList_Utilisateur WHERE email=:mail";
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));
$results=$this->con->getResults();
if($results!=null){
throw new PDOException("Erreur l'email existe déjà*");
}else{
return null;
}
}
// Vérifie que le pseudo n'existe pas
public function isExisteViaPseudo($pseudo){
$query="SELECT * FROM ToDoList_Utilisateur WHERE pseudo=:pseudo";
$this->con->executeQuery($query, array('pseudo' => array($pseudo, PDO::PARAM_STR)));
$results=$this->con->getResults();
if($results!=null){
throw new PDOException("Erreur le pseudo existe déjà*");
}else{
return null;
}
}
// Récupère le mot de passe pour la connexion via le mail en paramètres
public function getCredentials(string $mail){
$query = 'SELECT motDePasse FROM ToDoList_Utilisateur WHERE email=:mail';
$this->con->executeQuery($query, array('mail' => array($mail, PDO::PARAM_STR)));
@ -32,7 +57,6 @@ class UtilisateurGateway{
}else{
throw new Exception("Identifiant introuvable*");
}
}
public function RechercheUtilisateurViaEmail(string $mail){

@ -12,6 +12,9 @@ body {
font-weight: bold;
align-items: center;
justify-content: center;
-webkit-user-select: none; /* Safari */
-ms-user-select: none; /* IE 10 and IE 11 */
user-select: none;
}
body::before {
@ -285,6 +288,7 @@ body::before {
.ErreurText{
color: red;
font-size: 0.7rem;
font-weight: bold;
}
.button{

@ -1,5 +1,5 @@
<div class="header">
<div class="menu-bar">
<div class="menu-bar" >
<section class="fixed-top">
<nav class="navbar navbar-expand-lg bg-info ">
<img src="./vue/Images/LogoForHome.png" width="200">

@ -12,8 +12,9 @@
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
<body style="-webkit-user-select: none; /* Safari */
-ms-user-select: none; /* IE 10 and IE 11 */
user-select: none;">
<?php require($rep.$vues['NavBar']); ?>
<br>
<br>

@ -14,55 +14,74 @@
</head>
<body>
<div class="main">
<div class="model">
<div class="main-logo">
<img src="./vue/Images/Logo.png" alt="logo">
</div>
<div class="login-card-header">
<h1>Inscrivez-vous</h1>
<div class="model">
<div class="main-logo">
<img src="./vue/Images/Logo.png" alt="logo">
</div>
<div class="login-card-header">
<h1>Inscrivez-vous</h1>
</div>
<?php
if(isset($ErreurLog)){?>
<center><p class="ErreurText"> <?php echo $ErreurLog?></p></center><?php
}
?>
<form method="POST" class="login-card-form">
<div class="row">
<div class="col-md-6 mb-4">
<?php
if(isset($dVueErreur['nom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['nom']?></p></center><?php
}
?>
<div class="form-outline">
<input type="text" name="nom-Form" placeholder="Nom" required autofocus>
</div>
</div>
<form method="POST" class="login-card-form">
<div class="row">
<div class="col-md-6 mb-4">
<div class="form-outline">
<input type="text" name="nom-Form" placeholder="Nom" required autofocus>
</div>
</div>
<div class="col-md-6 mb-4">
<div class="form-outline">
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
</div>
</div>
<div class="col-md-6 mb-4">
<?php
if(isset($dVueErreur['prenom'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['prenom']?></p></center><?php
}
?>
<div class="form-outline">
<input type="text" name="prenom-Form" placeholder="Prenom" required autofocus>
</div>
<div class="form-item">
<input type="text" name="pseudo-Form" placeholder="Pseudo" required autofocus>
</div>
<div class="form-item">
<input type="text" name="mail" placeholder="Mail" required autofocus>
</div>
<div class="form-item">
<input type="password" name="password" placeholder="Password" required >
</div>
<button type="submit" class="btn btn-primary">S'inscrire</button>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="validationFormulaire">
<?php
if (isset($dVueEreur)) {
foreach ($dVueEreur as $value){
echo $value;
}
}
?>
<p class="text-center text-muted mt-5 mb-0">Déjà un compte?
<a href="login" class="fw-bold text-body"><u>Connectez-vous</u></a></p>
</form>
</div>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['pseudo'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['pseudo']?></p></center><?php
}
?>
<input type="text" name="pseudo-Form" placeholder="Pseudo" required autofocus>
</div>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['mail'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['mail']?></p></center><?php
}
?>
<input type="text" name="mail" placeholder="Mail" required autofocus>
</div>
<div class="form-item">
<?php
if(isset($dVueErreur['password'])){?>
<center><p class="ErreurText"> <?php echo $dVueErreur['password']?></p></center><?php
}
?>
<input type="password" name="password" placeholder="Password" required >
</div>
<button type="submit" class="btn btn-primary">S'inscrire</button>
<!-- action !!!!!!!!!! -->
<input type="hidden" name="action" value="validationFormulaire">
<p class="text-center text-muted mt-5 mb-0">Déjà un compte?
<a href="login" class="fw-bold text-body"><u>Connectez-vous</u></a></p>
</form>
</div>
</div>
</body>
</html>

@ -6,14 +6,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Page</title>
<!-- CSS only -->
<link rel="stylesheet" href="./vue/css/style.css">
<link rel="stylesheet" href="./vue/css/reset.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@48,300,0,0" />
</head>
<body>
<div class="main">
<a class="button" href="VueListePublic">Sortir</a>
<a class="button" href="VueListePublic">Sortir</a>
<div class="model">
<div class="main-logo">
<img src="./vue/Images/Logo.png" alt="logo">
@ -22,9 +21,9 @@
<h1>Se Connecter</h1>
</div>
<?php
if(isset($ErreurLog)){?>
<center><p class="ErreurText"> <?php echo $ErreurLog?></p></center><?php
}
if(isset($ErreurLog)){?>
<center><p class="ErreurText"> <?php echo $ErreurLog?></p></center><?php
}
?>
<form method="POST" class="login-card-form">
<div class="form-item">
@ -66,24 +65,22 @@
<rect x="4" y="4" width="16" height="16" rx="4"></rect>
<circle cx="12" cy="12" r="3"></circle>
<line x1="16.5" y1="7.5" x2="16.5" y2="7.501"></line>
</svg>
</svg>
</a>
<a href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-google" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M17.788 5.108a9 9 0 1 0 3.212 6.892h-8"></path>
</svg>
</svg>
</a>
<a href="#">
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z"></path>
</svg>
</svg>
</a>
</div>
</div>
</div>
</body>
</html>
Loading…
Cancel
Save