Probleme avec traitement de formulaire
altechkgo
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Salut à tous
J'ai un des soucis avec mon formulaire qui marchais très bien, ce matin rien ne tourne bien.
Problème 1: Les données entré par l'utilisateur ne plus inséré dans la base de données
Probleme 2; je voudrais créer aussi un système de captcha avec votre aide cher ami
Merci à tous
J'ai un des soucis avec mon formulaire qui marchais très bien, ce matin rien ne tourne bien.
Problème 1: Les données entré par l'utilisateur ne plus inséré dans la base de données
Probleme 2; je voudrais créer aussi un système de captcha avec votre aide cher ami
Merci à tous
<?php
if(!empty($_POST)){
if(!empty($_POST['password']) && ( filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) )){
$email = addslashes($_POST['email']);
$password = sha1($_POST['password']);
$token = sha1(uniqid(rand()));
$nom = addslashes($_POST['nom']);
$prenom = addslashes($_POST['prenom']);
$urgence = addslashes($_POST['urgence']);
$datenaissance = addslashes($_POST['datenaissance']);
$pieceid = addslashes($_POST['pieceid']);
$lieuetablit= addslashes($_POST['lieuetablit']);
$datevalidite = addslashes($_POST['datevalidite']);
$cni = addslashes($_POST['cni']);
$adresse = addslashes($_POST['adresse']);
$ville = addslashes($_POST['ville']);
$pays = addslashes($_POST['pays']);
$codepostale = addslashes($_POST['codepostale']);
$reponse = $DB->uniqueEmail($email);
if($reponse !=0){
$_SESSION['erreur'] ="Adresse email déja utilisée par un autre membre!";
}else{
$data = array(
'nom' => $nom,
'prenom' => $prenom,
'urgence' => $urgence,
'cni' => $cni,
'datenaissance' => $datenaissance,
'lieu' => $lieu,
'pieceid' => $pieceid,
'lieuetablit' => $lieuetablit,
'datevalidite' => $datevalidite,
'email'=>$email,
'password'=>$password,
'token'=>$token,
'adresse'=>$adresse,
'ville'=>$ville,
'pays'=>$pays,
'codepostale'=>$codepostale
);
$sql = 'INSERT INTO users (nom,prenom,urgence,cni,email,password,token,datenaissance,lieu,pieceid,lieuetablit,datevalidite,adresse,ville,pays,codepostale) VALUES (:nom,:prenom,:urgence,:cni,:email,:password,:token,:datenaissance,:lieu,:pieceid,:lieuetablit,:datevalidite,:adresse,:ville,:pays,:codepostale)';
$req = $DB->insert($sql,$data);
// Envoi d'email
$mail_To = $email;
$mail_Subject = "Vous venez de créer votre compte pour accéder à notre espace commercialet profiter pleinement, une dernière étape est nécessaire: l'activation de compte.";
$headers = "From: Mon site.fr\r\n";
$headers .= "Reply-To: votreemail \r\n";
$headers .= "MIME-Version: 1.0\r\n";
// $headers .= "Content-Transfer-Encoding: 8bit\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$mail_Body = 'Bonjour,<br\> Veuillez cliquer sur <a href="https:www.je2menage.net/eshop/activate.php?token='.$token.'&email='.$email.'"> title="Pour activer votre compte"> le lien </a>pour activer votre compte ';
if(mail($mail_To, $mail_Subject, $mail_Body, $headers))
{
$_SESSION['message'] ='Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte';
unset($_POST);
}
else
{
$_SESSION['erreur'] ="Un problème est survenu lors de l'envoi d'email";
}
}
}else{
if(empty($_POST['password'])){
$erreur_password = ' Un mot de passe est requis !';
$_SESSION['erreur'] = "Veuillez corriger les érreurs !";
}
if(empty($_POST['email'])){
$erreur_email = 'Le champ email est requis !';
$_SESSION['erreur'] = "Veuillez corriger les érreurs !";
}else
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)){
$erreur_email = "Veuillez entrer une adresse email valide.";
$messageErreur = "Veuillez corriger les érreurs !";
}
}
}
?>
<!-- Message dans la session -->
<?php if (isset($_SESSION['message'])): ?>
<div class="message"> <?php echo $_SESSION['message']; ?></div>
<?php unset( $_SESSION['message']); ?>
<?php endif ?>
<?php if (isset($_SESSION['erreur'])): ?>
<div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div>
<?php unset( $_SESSION['erreur']); ?>
<?php endif ?>
<form action="signup.php" id="signup" method="post">
<h2>Votre Inscription</h2>
<p>Merci de bien vouloir completer le formulaire d'inscription ci-dessous</p>
<fieldset>
<p>
<label for="nom">Nom :</label>
<input type="text" name ="nom" id="nom" value="<?php echo (isset($_POST['nom'])?$_POST['nom']:''); ?>">
</p>
<p>
<label for="prenom">Prénoms :</label>
<input type="text" name ="prenom" id="prenom" value="<?php echo (isset($_POST['prenom'])?$_POST['prenom']:''); ?>">
</p>
</p>
<p>
<label for="datenaissance">date de naissance :</label>
<input type="text" name ="datenaissance" id="datenaissance" value="<?php echo (isset($_POST['datenaissance'])?$_POST['datenaissance']:''); ?>">
</p>
</p>
<p>
<label for="lieu">Lieu de naissance :</label>
<input type="text" name ="lieu" id="lieu" value="<?php echo (isset($_POST['lieu'])?$_POST['lieu']:''); ?>">
</p>
</p>
<p>
<label for="pieceid">N° CNI/ Passport:</label>
<input type="text" name ="pieceid" id="pieceid" value="<?php echo (isset($_POST['pieceid'])?$_POST['pieceid']:''); ?>">
</p>
</p>
<p>
<label for="lieuetablit">Etablit à :</label>
<input type="text" name ="lieuetablit" id="lieuetablit" value="<?php echo (isset($_POST['lieuetablit'])?$_POST['lieuetablit']:''); ?>">
</p>
<p>
<label for="cni">cni :</label>
<input type="text" name ="cni" id="cni" value="<?php echo (isset($_POST['cni'])?$_POST['cni']:''); ?>">
</p>
</p>
<p>
<label for="datevalidite">Etablit le :</label>
<input type="text" name ="datevalidite" id="datevalidite" value="<?php echo (isset($_POST['datevalidite'])?$_POST['datevalidite']:''); ?>">
</p>
</fieldset>
<fieldset>
<p>
<label for="adresse">Cel 1 :</label>
<input type="text" name ="adresse" id="adresse" value="<?php echo (isset($_POST['adresse'])?$_POST['adresse']:''); ?>"></p>
<p>
<label for="codepostale">Cel 2 :</label>
<input type="text" name ="codepostale" id="codepostale" value="<?php echo (isset($_POST['codepostale'])?$_POST['codepostale']:''); ?>">
</p>
<p>
<label for="pays">Pays de résidence :</label>
<input type="text" name ="pays" id="pays" value="<?php echo (isset($_POST['pays'])?$_POST['pays']:''); ?>">
</p>
<p>
<label for="ville">Ville :</label>
<input type="text" name ="ville" id="ville" value="<?php echo (isset($_POST['ville'])?$_POST['ville']:''); ?>">
</p>
<p>
<label for="urgence">Contact en cas d'Urgence :</label>
<input type="text" name ="urgence" id="urgence" value="<?php echo (isset($_POST['urgence'])?$_POST['urgence']:''); ?>">
</p>
<p>
<label for="email" class="required">Email :</label>
<input type="email" name ="email" id="email" value="<?php echo (isset($_POST['email'])?$_POST['email']:''); ?>">
</p>
<?php if (!empty($erreur_email)): ?>
<div class="error"><?php echo $erreur_email; ?></div>
<?php endif ?>
<p>
<label for="password" class="required">Mot de passe :</label>
<input type="password" name ="password" id="password">
</p>
<?php if (!empty($erreur_password)): ?>
<div class="error"><?php echo $erreur_password; ?></div>
<?php endif ?>
</fieldset>
<div class="clearfix"></div>
<p class='information'>* champs requis</p>
<p>
<input type="submit" name ="submit" value="S'inscrire">
</p>
</form>
A voir également:
- Probleme avec traitement de formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Formulaire de reclamation instagram - Guide
- Traitement de texte gratuit - Guide
4 réponses
Bonjour
As tu activé l'affichage des erreurs php ?
Affiché les erreurs pdo ?
Que contiennent tes fonctions "insert" ?
As tu activé l'affichage des erreurs php ?
Affiché les erreurs pdo ?
Que contiennent tes fonctions "insert" ?
Oui, j'ai bien activer les deux,
Voici le code de l'insert
merci encore
Voici le code de l'insert
$sql ='INSERT INTO users (nom,prenom,datenaissance,email,password,token,adresse,ville,urgence,codepostale) VALUES(:nom,:prenom,:datenaissance,:email,:password,:token,:adresse,:ville,:urgence,:codepostale)';
$req= $DB->insert($sql,$data);
//envoi d'email.
$mail_to =$email;
$mail_subject =" Validation de votre compte !!";
$headers = "From : BIENVENUE DANS NOTRE FAMILLE\r\n";
$headers.="Reply-To:votreemail \r\n";
$headers.="MIME-Version 1.0\r\n";
$headers.="Content-type: text/html;charset=utf-8\r\n";
$mail_body ='Bonjour <br/>
Veuillez ciquer sur <a href="httpS://www.je2menage.net/espace/activate.php?token='.$token.'&email='.$email.'"> le lien </a>pour activer votre compte ';
merci encore
VOICI comment j'ai fait
Merci encore
$sql = 'INSERT INTO users
(nom,prenom,urgence,email,password,token,datenaissance,lieu,pieceid,lieuetablit,datevalidite,adresse,ville,pays,codepostale) VALUES
(:nom,:prenom,:urgence,:email,:password,:token,:datenaissance,:lieu,:pieceid,:lieuetablit,:datevalidite,:adresse,:ville,:pays, :codepostale)';
$req = $DB->insert($sql,$data);
Merci encore
Visiblement tu as un peu de mal à lire....
Dans ta ligne de code
Que contient la fonction INSERT ??? La FONCTION (méthode si tu préfères).. ... qui se trouve certainement dans ta class DB
En complément....
Si le code PHP se trouve directement dans la même page que ton formulaire... alors il faut laisser l'action à vide
Remplacer :
par :
Il serait bien également, de vérifier le contenu de ta variable $_POST
Pour ça, au tout début de ton script, place un
et, une fois le formulaire validé, montre nous ce que ça t'affiche.
PS: Lorsque tu postes ton code, merci de le faire correctement (pour avoir la coloration syntaxique)
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Merci.
Dans ta ligne de code
$req = $DB->insert($sql,$data);
Que contient la fonction INSERT ??? La FONCTION (méthode si tu préfères).. ... qui se trouve certainement dans ta class DB
En complément....
Si le code PHP se trouve directement dans la même page que ton formulaire... alors il faut laisser l'action à vide
Remplacer :
<form action="signup.php" id="signup" method="post">
par :
<form action="" id="signup" method="post">
Il serait bien également, de vérifier le contenu de ta variable $_POST
Pour ça, au tout début de ton script, place un
print_r($_POST);
et, une fois le formulaire validé, montre nous ce que ça t'affiche.
PS: Lorsque tu postes ton code, merci de le faire correctement (pour avoir la coloration syntaxique)
explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Merci.
<?php
?>
<?php
if(!empty($_POST)){
if(!empty($_POST['password']) && ( filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ) ){
$email= addslashes($_POST['email']);
$password = sha1($_POST['password']);
$token = sha1(uniqid(rand()));
$nom=addslashes($_POST['nom']);
$adresse = addslashes($_POST['adresse']);
$ville = addslashes($_POST['ville']);
$codepostale =addslashes($_POST['codepostale']);
$reponse = $DB->uniqueEmail($email);
if($reponse !=0){
$_SESSION['erreur'] = "Adresse email déja utilisée par un membre.";
}else{
$data = array(
'nom'=>$nom,
'email'=>$email,
'password'=>$password,
'token'=>$token,
'adresse'=>$adresse,
'ville'=>$ville,
'codepostale'=>$codepostale
);
$sql ='INSERT INTO users (nom,email,password,token,adresse,ville,codepostale) VALUES(:nom,:email,:password,:token,:adresse,:ville,:codepostale)';
$req= $DB->insert($sql,$data);
//envoi d'email.
$mail_to =$email;
$mail_subject =" Validation de votre compte !!";
$headers = "From : Mon site.fr\r\n";
$headers.="Reply-To:votreemail \r\n";
$headers.="MIME-Version 1.0\r\n";
$headers.="Content-type: text/html;charset=utf-8\r\n";
$mail_body ='Bonjour <br/> Veuillez ciquer sur <a href="https://je2menage.net/espace/activate.php?token='.$token.'&email='.$email.'"> le lien </a>pour activer votre compte ';
if(mail($mail_to,$mail_subject,$mail_body,$headers)){
$_SESSION['message'] = " Un émail a été envoyé a votre méssagerie avec des instructions pour activer votre compte ";
unset($_POST);
}else{
$_SESSION['erreur'] = "Un problème est survenu lors de l'envoi d'email !.";
}
}
}else{
if(empty($_POST['password'])){
$erreur_password ='Un mot de passe est requis !.';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}
if(empty($_POST['email'])){
$erreur_email ='Le champs email est requis !';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}else
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL) ){
$erreur_email ='Adresse Email non valide !';
$_SESSION['erreur'] = ' Veuillez corriger les érreurs .';
}
}
}
?>
<!-- message de session -->
<?php if (isset($_SESSION['message'])): ?>
<div class="message"> <?php echo $_SESSION['message']; ?></div>
<?php unset($_SESSION['message']) ?>
<?php endif ?>
<?php if (isset($_SESSION['erreur'])): ?>
<div class="errorMessage"> <?php echo $_SESSION['erreur']; ?></div>
<?php unset($_SESSION['erreur']) ?>
<?php endif ?>
<!-- formulaire d'inscription -->
<form action="signup.php" method="post" id="signup">
<h2>Inscription</h2>
<fieldset>
<p>
<label for="nom">Nom :</label>
<input type="text" name="nom" id ="nom" value="<?php echo isset($_POST['nom'])?$_POST['nom']:''; ?>">
</p>
<p>
<label for="email" class="required">Email :</label>
<input type="email" name="email" id ="email" value="<?php echo isset($_POST['email'])?$_POST['email']:''; ?>">
</p>
<?php if (!empty($erreur_email)): ?>
<div class="error"><?php echo $erreur_email; ?></div>
<?php endif ?>
<p>
<label for="password" class="required">Mot de passe :</label>
<input type="password" name="password" id ="password">
</p>
<?php if (!empty($erreur_password)): ?>
<div class="error"><?php echo $erreur_password; ?></div>
<?php endif ?>
</fieldset>
<fieldset>
<p>
<label for="adresse">Adresse :</label>
<input type="text" name="adresse" id ="adresse" value="<?php echo isset($_POST['adresse'])?$_POST['adresse']:''; ?>">
</p>
<p>
<label for="ville">Ville :</label>
<input type="text" name="ville" id ="ville" value="<?php echo isset($_POST['ville'])?$_POST['ville']:''; ?>">
</p>
<p>
<label for="codepostale">Code postale :</label>
<input type="text" name="codepostale" id ="codepostale" value="<?php echo isset($_POST['codepostale'])?$_POST['codepostale']:''; ?>">
</p>
</fieldset>
<div class="clearfix"></div>
<p class="information">* Champs requis</p>
<p>
<input type="submit" value ="S'inscrire">
</p>
</form>
ok
Voici donc le code complet
1 - Tu ne réponds toujours pas à ma question..........
Je ne sais plus comment te le formuler pour que tu comprennes.....
Dernier essai : D'où vient ta variable $DB ? Je suppose d'une CLASS ..... cette class contient du code.... je veux voir ce code !
2 - Tu ne sais visiblement pas lire !
Je t'ai expliqué qu'il fallait poster ton code correctement.... en utilisant la coloration syntaxique....
Tu n'as visiblement pas lu le lien que je t'ai donné !
Dernier rappel !!
Je ne sais plus comment te le formuler pour que tu comprennes.....
Dernier essai : D'où vient ta variable $DB ? Je suppose d'une CLASS ..... cette class contient du code.... je veux voir ce code !
2 - Tu ne sais visiblement pas lire !
Je t'ai expliqué qu'il fallait poster ton code correctement.... en utilisant la coloration syntaxique....
Tu n'as visiblement pas lu le lien que je t'ai donné !
Dernier rappel !!
En fouillant... je suis retombé sur une ancienne discussion dans laquelle tu mettais le code de ta class DB
https://forums.commentcamarche.net/forum/affich-35739387-connexion-avec-pdo
Dans cette discussion... je t'avais indiqué le lien qui explique comment gérer correctement les erreurs PDO .... lien que tu n'avais pas lu ni appliqué !
Donc... avant tout .... commence par ajouter des TRY/CATCH à TOUTES les exécutions de requêtes.
Voir ici pour les explications :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Reviens nous voir avec le code corrigé si le souci persiste (et j'insiste.... le code corrigé !!! )
https://forums.commentcamarche.net/forum/affich-35739387-connexion-avec-pdo
Dans cette discussion... je t'avais indiqué le lien qui explique comment gérer correctement les erreurs PDO .... lien que tu n'avais pas lu ni appliqué !
Donc... avant tout .... commence par ajouter des TRY/CATCH à TOUTES les exécutions de requêtes.
Voir ici pour les explications :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Reviens nous voir avec le code corrigé si le souci persiste (et j'insiste.... le code corrigé !!! )