diff --git a/Profil.php b/Profil.php index d528b37c9f6dfa19938b86b184e5e1af97aeec96..715bb91ca34c39da728bba6146f32dcc73b9fd4b 100644 --- a/Profil.php +++ b/Profil.php @@ -15,6 +15,10 @@ session_start(); <body> <form action="" method="post"> <?php + + $erreur = false; + $strerr = "<ul> Erreur : "; + if (isset($_POST['connexion'])){ header("location:connexion.php"); } @@ -86,6 +90,10 @@ session_start(); } if($_POST['email'] != ""){ $email = $_POST['email']; + if (!$email == "" && !filter_var($email, FILTER_VALIDATE_EMAIL )){ + $erreur = true; + $strerr = '<li> Adresse e-mail invalide </li>'; + } } if($_POST['sexe'] != ""){ $sexe = $_POST['sexe']; @@ -95,25 +103,41 @@ session_start(); } if($_POST['numtelephone'] != ""){ $numtelephone = $_POST['numtelephone']; + if (!$numtelephone == "" && !is_numeric($numtelephone) && strlen($codepostal) != 10){ + $erreur = true; + $strerr = '<li> Numéro de téléphone invalide </li>'; + } } if($_POST['ville'] != ""){ $ville = $_POST['ville']; } if($_POST['codepostal'] != ""){ $codepostal = $_POST['codepostal']; + if (!$codepostal == "" && !is_numeric($codepostal) && strlen($codepostal) != 5){ + $erreur = true; + $strerr = '<li> Code postal invalide </li>'; + } + } if($_POST['password'] != ""){ if(preg_match('/^\S*(?=\S{8,})(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/i', $_POST['password'])){ $password = $_POST['password']; - } + }else{ + $erreur = true; + $strerr = '<li> Mot de passe invalide </li>'; + } } if($_POST['datenaissance'] != ""){ $datenaissance = $_POST['datenaissance']; } - - $res = $mysqli->query("UPDATE utilisateurs SET nom = '{$nom}', prenom = '{$prenom}', email = '{$email}', sexe = '{$sexe}', adresse = '{$adresse}', numtelephone = '{$numtelephone}', datenaissance = '{$datenaissance}', ville = '{$ville}', pseudo = '{$newPseudo}', codepostal = '{$codepostal}', password = '{$password}' WHERE pseudo = '{$pseudo}';"); - header("Refresh:0"); + if ($erreur == true){ + echo "<div id='erreur'> <p>".$strerr."</ul> </p> </div>"; + $erreur = false; + }else{ + $res = $mysqli->query("UPDATE utilisateurs SET nom = '{$nom}', prenom = '{$prenom}', email = '{$email}', sexe = '{$sexe}', adresse = '{$adresse}', numtelephone = '{$numtelephone}', datenaissance = '{$datenaissance}', ville = '{$ville}', pseudo = '{$newPseudo}', codepostal = '{$codepostal}', password = '{$password}' WHERE pseudo = '{$pseudo}';"); + header("Refresh:0"); + } } @@ -127,7 +151,9 @@ session_start(); echo nl2br("Votre adresse : ".$adresse." - Modifier en <input name='adresse' type='text'/>"."\n"); echo nl2br("Votre code postal : ".$codepostal." - Modifier en <input name='codepostal' type='text'/>"."\n"); echo nl2br("Votre ville : ".$ville." - Modifier en <input name='ville' type='text'/>"."\n"); - echo nl2br("Votre numéro de téléphone : ".$numtelephone." - Modifier en <input name='numtelephone' type='text'/>"."\n"); + echo nl2br("Votre numéro de téléphone : ".$numtelephone." - Modifier en <input name='numtelephone' type='tel'/>"."\n"); + + ?> <input type="submit" name="modifier" class="button" value="Modifier"/> diff --git a/Service.php b/Service.php index 37379f7bf6ff83b44a5069f28ed59cd7fd0adcc9..1dd8f19392976d0444794264ffee7282ed54aaf7 100644 --- a/Service.php +++ b/Service.php @@ -35,10 +35,26 @@ function realiseInscription ($json){ $codepostal = mysqli_real_escape_string ($mysqli, $json['codepostal']); $ville = mysqli_real_escape_string ($mysqli, $json['ville']); $numero = mysqli_real_escape_string ($mysqli, $json['numtelephone']); + if ($nom =='') $nom = 'NULL'; + if ($prenom =='') $prenom = 'NULL'; + if ($sexe =='') $sexe = 'NULL'; + if ($email =='') $email = 'NULL'; + if ($datenaissance =='') $datenaissance = 'NULL'; + if ($adresse =='') $adresse = 'NULL'; + if ($codepostal =='') $codepostal = 'NULL'; + if ($ville =='') $ville = 'NULL'; + if ($numero =='') $numero = 'NULL'; + + $q = "INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password, adresse, codepostal, ville, numtelephone, datenaissance) + VALUES ({$nom}, {$prenom}, {$sexe}, {$email}, '{$pseudo}', '{$password}', {$adresse}, {$codepostal}, {$ville}, {$numero}, "; + if ($datenaissance != 'NULL') { + $q .= "'{$datenaissance}')"; + }else{ + $q .= "{$datenaissance})"; + } - $res = $mysqli->query("INSERT INTO utilisateurs(nom, prenom, sexe, email, pseudo, password, datenaissance, adresse, codepostal, ville, numtelephone) - VALUES ('{$nom}', '{$prenom}', '{$sexe}', '{$email}', '{$pseudo}', '{$password}','{$datenaissance}','{$adresse}','{$codepostal}','{$ville}','{$numero}')"); - + $res = $mysqli->query($q); + if ($res == true){ // si l'inscription fonctionne, préparation des éléments de sessions $_SESSION['pseudo'] = $json['pseudo']; $resultat = $mysqli->query("SELECT * FROM utilisateurs WHERE pseudo LIKE '{$pseudo}' AND password = '{$password}'"); diff --git a/connexion.php b/connexion.php index 182d57dbc2fc8884909d13feb7a5a2d4ec9e229b..3bb08adb0f8b0029b05ddb2531277956d18df24e 100644 --- a/connexion.php +++ b/connexion.php @@ -12,6 +12,8 @@ <title>Inscription</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="formulaire.js"> </script> + <link href="recettes.css" rel="stylesheet"> + </head> diff --git a/formulaire.js b/formulaire.js index 41d5a0ea4d7549534c50eb1888dabe0ac49d44f8..1aa477ea0d72f9f487964730d01c64b30a49273a 100644 --- a/formulaire.js +++ b/formulaire.js @@ -19,9 +19,14 @@ window.addEventListener("load", function (){ var explications = this.document.getElementById('explications'); var divMdp = document.createElement("div"); var divPseudo = document.createElement("div"); + var divNumero = document.createElement("div"); + var divPoste = document.createElement("div"); explications.appendChild(divMdp); explications.appendChild(divPseudo); + explications.appendChild(divNumero); + explications.appendChild(divPoste); + // Récupère le champ password et le test @@ -37,7 +42,6 @@ window.addEventListener("load", function (){ var ville = formulaire.ville; var numtelephone = formulaire.numtelephone; - // Envoie le formulaire au serveur function envoyerForm(){ let input; @@ -48,6 +52,7 @@ window.addEventListener("load", function (){ } }); + console.log(datenaissance.value); if (genre){ input = { mode : 'inscription', @@ -110,7 +115,28 @@ window.addEventListener("load", function (){ xhr.send(JSON.stringify(input)); } - + function validPostal(event){ + divPoste.innerHTML = ""; + if (codepostal.value.length > 0){ + if (!Number.isInteger(codepostal.value) && codepostal.value.length !=5){ + codepostal.style.backgroundColor = 'red'; + divPoste.innerHTML = "<li> Le code postal doit être composé de 5 chiffres </li>"; + return false; + } + } + return true; + } + function validPhone(event){ + divNumero.innerHTML = ""; + if (numtelephone.value.length > 0){ + if (!Number.isInteger(numtelephone.value) && numtelephone.value.length !=10){ + numtelephone.style.backgroundColor = 'red'; + divNumero.innerHTML = "<li> Le numéro de téléphone doit être composé de 10 chiffres </li>"; + return false; + } + } + return true; + } // Test si l'e-mail est vide ou dans un format correct function validEmail(event){ var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; @@ -131,7 +157,7 @@ window.addEventListener("load", function (){ if (pseudo.value.length < 3 || reg.test(pseudo.value)){ pseudo.style.backgroundColor = 'red'; - divPseudo.innerHTML = "<ul> Le pseudo doit faire au moins 3 caractères </ul>"; + divPseudo.innerHTML = "<li> Le pseudo doit faire au moins 3 caractères </li>"; return false; }else{ pseudo.style.backgroundColor = 'white'; @@ -153,13 +179,13 @@ window.addEventListener("load", function (){ return true; }else{ // Notification des erreurs password.style.backgroundColor = 'red'; - divMdp.innerHTML = "<ul>Le mot de passe doit :"; + divMdp.innerHTML = "<li>Le mot de passe doit :"; if (password.value.length < 6) divMdp.innerHTML += "<li>faire plus de 6 caractères </li>"; if (!majuscule.test(password.value) || (!minuscule.test(password.value))) { - divMdp.innerHTML += "<li>avoir au moins une majuscule et une minuscule </li> </ul>"; + divMdp.innerHTML += "<li>avoir au moins une majuscule et une minuscule </li> </li>"; } if (!nombre.test(password.value)) divMdp.innerHTML += "<li>contenir au moins un chiffre </li>"; - divMdp.innerHTML += '</ul>'; + divMdp.innerHTML += '</li>'; return false; } } @@ -173,7 +199,7 @@ window.addEventListener("load", function (){ // active le bouton d'envoi du formulaire ou le bloque et donne des explications formulaire.addEventListener('keyup', () =>{ - if (validPassword() && validPseudo() && validEmail()){ + if (validPassword() && validPseudo() && validEmail() && validPhone() && validPostal()){ explications.innerHTML = ''; ok.disabled = false; }else{ @@ -196,6 +222,14 @@ window.addEventListener("load", function (){ validEmail(); }) + numtelephone.addEventListener('keyup', () => { + validPhone(); + }) + + codepostal.addEventListener('keyup', () => { + validPostal(); + }) + }); @@ -275,7 +309,7 @@ window.addEventListener("load", function (){ if (pseudo.value.length < 3 || reg.test(pseudo.value)){ pseudo.style.backgroundColor = 'red'; - divPseudo.innerHTML = "<ul> Le pseudo doit faire au moins 3 caractères </ul>"; + divPseudo.innerHTML = "<li> Le pseudo doit faire au moins 3 caractères </li>"; return false; }else{ pseudo.style.backgroundColor = 'white'; @@ -296,13 +330,13 @@ window.addEventListener("load", function (){ return true; }else{ password.style.backgroundColor = 'red'; - divMdp.innerHTML = "<ul>Le mot de passe doit :"; + divMdp.innerHTML = "<li>Le mot de passe doit :"; if (password.value.length < 6) divMdp.innerHTML += "<li>faire plus de 6 caractères </li>"; if (!majuscule.test(password.value) || (!minuscule.test(password.value))) { - divMdp.innerHTML += "<li>avoir au moins une majuscule et une minuscule </li> </ul>"; + divMdp.innerHTML += "<li>avoir au moins une majuscule et une minuscule </li> </li>"; } if (!nombre.test(password.value)) divMdp.innerHTML += "<li>contenir au moins un chiffre </li>"; - divMdp.innerHTML += '</ul>'; + divMdp.innerHTML += '</li>'; return false; } } diff --git a/inscription.php b/inscription.php index 23e47b64ab2eb610fccababeb6337e0a9e59b057..92f1eaa23f3cec44d54aeb909f88bb7f474b95ae 100644 --- a/inscription.php +++ b/inscription.php @@ -12,6 +12,8 @@ <title>Inscription</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="formulaire.js"> </script> + <link href="recettes.css" rel="stylesheet"> + </head> @@ -56,7 +58,7 @@ break; case "datenaissance": $form.= "Date de naissance : "; - $form .= "</label> <input type='date' required='false' name='" . $row["Field"] . "' > </br>"; + $form .= "</label> <input type='date' name='" . $row["Field"] . "' > </br>"; break; case "adresse": $form.= "Adresse : "; @@ -68,10 +70,13 @@ $form.= "Ville : "; break; case "numtelephone": - $form.= "Numéro de téléphone : "; + $form.= "Numéro de téléphone : </label> "; + + $form .= "<input type='tel' name='".$row["Field"]."' > </br>"; + break; } - if ($row["Field"] != "sexe" && $row["Field"] != "pseudo" && $row["Field"] != "password" && $row["Field"] != "email" && $row["Field"] != "datenaissance"){ + if ($row["Field"] != "sexe" && $row["Field"] != "pseudo" && $row["Field"] != "password" && $row["Field"] != "email" && $row["Field"] != "datenaissance" && $row["Field"] != 'numtelephone'){ $form .= "</label> <input type='text' name='" . $row["Field"] . "' > </br>"; } }