Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour j'ai ce code :
<select id="sexe">
<option value="Autre" name="sexea">Autre</option>
<option value="F" name="sexeF">Femme</option>
<option value="H" name="sexeH">Homme</option>
</select><br>
et j'aimerais que si une personne mette le sexe "autre" ça mette l'erreur : Vous devez être un homme ou une femme !
J'avais fait une petite erreur dans ce que je t'avais donné. Voilà le bon code par rapport à ton code ci-dessous :
$verif_sexe = (int) $sexe;
if(!in_array($verif_sexe, array(1, 2)){
$valid = false;
$mess_err_sexe = "Veuillez choissir si vous êtes un homme ou une femme";
}
Par contre fait attention je pense que tu as oublié de fermer une parenthèse dans ton code
Code :
<?php
session_start();
include('connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: /');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
// On se place sur le bon formulaire grâce au "name" de la balise "input"
if (isset($_POST['inscription'])){
$nom = htmlentities(trim($nom)); // On récupère le nom
$mail = htmlentities(strtolower(trim($mail))); // On récupère le mail
$biographie = htmlentities(trim($biographie));
$mdp = trim($mdp); // On récupère le mot de passe
$confmdp = trim($confmdp); // On récupère la confirmation du mot de passe
// Vérification du nom
if(empty($nom)){
$valid = false;
$er_nom = ("<span style = 'color:red';>Le nom d'utilisateur ne peut pas être vide</span>");
}
if(empty($biographie)){
$valid = false;
$er_bio = ("<span style = 'color:red';>Vous devez mettre une biographie !</span>");
}
// Vérification du mail
}if(empty($mail)){
$valid = false;
$er_mail = "<span style = 'color:red';>Le mail ne peut pas être vide</span>";
// On vérifit que le mail est dans le bon format
}elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){
$valid = false;
$er_mail = "<span style = 'color:red';>Le mail n'est pas valide</span>";
}else{
// On vérifit que le mail est disponible
$req_mail = $DB->query("SELECT mail FROM utilisateur WHERE mail = ?",
array($mail));
$req_mail = $req_mail->fetch();
if ($req_mail['mail']){
$valid = false;
$er_mail = "<span style = 'color:red';>Ce mail existe déjà</span>";
}
}
// Vérification du mot de passe
if(empty($mdp)) {
$valid = false;
$er_mdp = "<span style = 'color:red';>Le mot de passe ne peut pas être vide</span>";
}elseif($mdp != $confmdp){
$valid = false;
$er_mdp = "<span style = 'color:red';>La confirmation du mot de passe ne correspond pas</span>";
}
if(empty($an)) {
$valid = false;
$er_an = '<span style = "color:red";>Vous devez remplir le champ "Année".</span>';
}
$verif_sexe = (int) $_POST['sexe'];
if(in_array($sexe, array(1, 2)){
// C'est ok
}else{
$valid = false;
$mess_err_sexe = "Veuillez choissir si vous êtes un homme ou une femme";
}
// Si toutes les conditions sont remplies alors on fait le traitement
if($valid){
$mdp = crypt($mdp, "$6$rounds=5000$macleapersonnaliseretagardersecret$");
$date_creation_compte = date('Y-m-d H:i:s');
// On insert nos données dans la table utilisateur
$DB->insert("INSERT INTO utilisateur (nom, mail, anné_naissance, biographie, mdp, date_creation_compte) VALUES
(?, ?, ?, ?, ?, ?)",
array($nom, $mail, $an, $biographie, $mdp, $date_creation_compte));
header('Location: /');
exit;
}
}
?>
<link rel="stylesheet" type="text/css" href="default.css">
<style type="text/css">
p {
margin-top: 0px;
}
fieldset {
margin-bottom: 15px;
padding: 10px;
}
legend {
padding: 0px 3px;
font-weight: bold;
font-variant: small-caps;
}
label {
width: 200px;
display: inline-block;
vertical-align: top;
margin: 6px;
}
em {
font-weight: bold;
font-style: normal;
color: #f00;
}
input:focus {
background: #eaeaea;
}
input, textarea {
width: 249px;
}
textarea {
height: 100px;
}
textarea:focus {
background: #eaeaea;
}
select {
width: 254px;
}
input[type=checkbox] {
width: 10px;
}
input[type=submit] {
width: 150px;
padding: 10px;
}
#connexion {
color:#fff;
background:#2F2F2F;
border-color:#2F2F2F;
transition: all 0.3s ease;
}
#connexion:hover {
background:#46A2D9;
border-color:#46A2D9;
}
</style>
<div id="content" class="container clearfix">
<div id="main-content">
<div class="list-posts clearfix">
<div class="kp-breadcrumb">
<h2>Formulaire d'inscription à mon site</h2>
<ol class="breadcrumb">
<li><span>Vous êtes ici:</span><a href="/">Accueil</a></li>
<li><a href="/connexion/">Connexion</a></li>
</ol>
</div>
<h4><a href="connexion" class="no-account">Déjà inscrit ? Connectez-vous ici !</a></h4>
<form method="post" >
<p><i>Complétez le formulaire. Les champs marqué par </i><em>*</em><i> sont </i><em>obligatoires</em></p>
<fieldset>
<legend>Information personnelles</legend>
<label for="nom">Nom & Prénom <em>*</em></label>
<!--placeholder: indication grisée
//required: il faut renseigner le champs sinon la validation est bloquée
//autofocus: le curseur est positionné dans cette case au chargement de la page-->
<input id="nom" placeholder="Nom Prénom" autofocus="" value="<?php if(isset($nom)){ echo $nom; }?>" name="nom" /><br>
<label for="email">Email <em>*</em></label>
<input id="email" name="mail" value="<?php if(isset($mail)){ echo $mail; }?>" type="text" placeholder="prenom.nom@domaine.com"><br>
<label for="email">Email <em>*</em></label>
<select id="sexe" name="sexe">
<option value="0">Autre</option>
<option value="1">Femme</option>
<option value="2">Homme</option>
</select><br />
<label for="age">Année de naissance<em>*</em></label>
<input name="an" id="Année de naissance" value="1990" type="number" placeholder="xxxx" pattern="[0-9]{2}" ><br>
<label for="comments">Choisissez votre biographie<em>*</em></label>
<textarea id="comments" name="biographie" value="<?php if(isset($biographie)){ echo $biographie; }?>" ></textarea><br /><br />
<label for="age">Mot de passe<em>*</em></label>
<input type="password" placeholder="Mot de passe" name="mdp" value="<?php if(isset($mdp)){ echo $mdp; }?>" ><br/>
<label for="age">Mot de passe de confirmation<em>*</em></label>
<input type="password" value="<?php if(isset($mdp)){ echo $mdp; }?>" placeholder="Confirmer le mot de passe" name="confmdp" >
</fieldset>
<input type="submit" value="Inscription" name="inscription" id="connexion"><br>
<?php
if (isset($er_nom)){
?>
<div><?= $er_nom ?></div>
<?php
}
?>
<?php
if (isset($er_prenom)){
?>
<div><?= $er_prenom ?></div>
<?php
}
?>
<?php
if (isset($er_mail)){
?>
<div><?= $er_mail ?></div>
<?php
}
?>
<?php
if (isset($er_age)){
?>
<div><?= $er_age ?></div>
<?php
}
?>
<?php
if (isset($er_an)){
?>
<div><?= $er_an ?></div>
<?php
}
?>
<?php
if (isset($er_sexea)){
?>
<div><?= $er_sexea ?></div>
<?php
}
?>
<?php
if (isset($er_bio)){
?>
<div><?= $er_bio ?></div>
<?php
}
?>
<?php
if (isset($er_mdp)){
?>
<div><?= $er_mdp ?></div>
<?php
}
?>
<?php
if (isset($er_cgu)){
?>
<div><?= $er_cgu ?></div>
<?php
}
?>
<?php
if (isset($er_an)){
?>
<div><?= $er_an ?></div>
<?php
}
?>
</form>
</form>
</div>
</div>
</div>
</html>
Hello Didoub74,
Peux-tu envoyer le code complet concerné par l'erreur que tu rencontres ? 🤔
Tu dois avoir une accolade ou autre chose en trop dans ton code...
Salut Clouder
il me dite cette erreur : Parse error: syntax error, unexpected '}' in /Volumes/site web/Test/Nouveau formulaire inscription (non prêt !).php
on line 77
Je ferais cela :
Dans ton code HTML
<select id="sexe" name="sexe">
<option value="0">Autre</option>
<option value="1">Femme</option>
<option value="2">Homme</option>
</select>
Lorsque tu vérifies ton formulaire
<?php
$verif_sexe = (int) $_POST['sexe'];
if(in_array($verif_sexe, array(1, 2)){
// C'est ok
}else{
$valid = false;
$mess_err_sexe = "Veuillez choissir si vous êtes un homme ou une femme";
}
Bonjour Didoub74,
Il faut que tu fasses un if, ce qui donne en gros :
if($_POST['sexea'] == "checked") {
echo "Ton message d’erreur";
}