Verifier les informations avant enregistrement dans bd

Fermé
Busima Messages postés 55 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 - 10 févr. 2016 à 16:06
 Busima - 14 févr. 2016 à 00:36
Bonjour,
J'ai un souci, je cherche à enregistrer des champs(contenu) d'un formulaire dans une bd, mais avant d'enregistrer je veux que l'utilisateur voit les informations qu'il a saisi et decide enfin s'il doit les enregistrer ou annuler. Dabord, après le remplissage des champs il clique sur "valider". Il passe sur une autre page où il voit les informations saisies, ensuite un bouton "Envoyer" lui permet de valider l'envoi des informations que j'enregistre maintenant dans la bd. Comment faire?
Merci d'avance.

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 févr. 2016 à 16:41
Bonjour,

ça dépend ....
- Qu'entends tu par : << l'utilisateur voit les informations qu'il a saisi >>
Il les visualise d'une autre façon que dans le formulaire ??
Car.. lorsqu'il rempli le formulaire... il les visualise déjà non ?


0
Busima Messages postés 55 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021 1
Modifié par Busima le 11/02/2016 à 00:35
Oui Jordane, après la saisie dans le formulaire, lorsqu'il valide je veux le faire passer sur une page lui montrant les informations qu'il a saisi. Maintenant s'il est totalement d'accord pour l'enregistrement alors il valide une deuxième fois sur cette deuxième page là. Merci!

En fait, j'ai trois page dont voici les codes:
Première page est la page du formulaire à remplir que voici
<html>
<head><title>Validation du choix</title>
</head>
<body>
<div id="bloc_page">
<h1>Remplissez ces champs pour valider votre choix!</h1>
<h2>Formulaire :</h2>
<form name="inscription" method="post" action="result_voeux.php">
Mr<input type="radio" name="civ" value="Mr">
Mme<input type="radio" name="civ" value="Mme">
Mlle<input type="radio" name="civ" value="Mlle"> </br></br>
Votre Nom :   <input type="text" name="nom"/> <br/><br/>
Vos prenoms: <input type="text" name="prenom"/> </br><br/>
Vos contacts :<input type="text" name="contact"/><br/><br/>
Votre email : <input type="email" name="email"/><br/>
<div class="msg">
Votre Message :
<p>
<textarea name="message" rows="10" cols="45">
Votre message ici.
</textarea>
<input type="submit" name="valider" value="Valider"/>
</p>
</div>
</form>
</div>



Voici le code de la deuxième page "result_voeux.php"

<body>

<?php
include ('fonctions.php');
?>
<?php
if(isset($_POST['valider']))
{
//On récupère les valeurs entrées par l'utilisateur :
$civ=$_POST['civ'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$contact=$_POST['contact'];
$email=$_POST['email'];
$message=$_POST['message'];
//On construit la date d'aujourd'hui strictement comme sql la construit
$today = date("y-m-d");

echo '<h2>Vos informations sont les suivantes<br></h2>';
echo $civ.' '.$nom.' '.$prenom.'<br>Vos contacts: '.$contact.' Adresse E-mail: '.$email.' <br> Ensuite votre message: '
.$message.'<br>';

echo ' <h4>Merci de nous avoir écrit!</h4>';
echo 'Desirez-vous nous envoyer votre commande?';
}
?>

// Voici le petit formulaire qui lui permet de valider ou annuler sa saisie!
<form method="POST" action="insertion_voeux.php" >
<input type="submit" value="Envoyer" name="envoyer" id="envoyer"/> </br>
<input type="submit" value="Annuler" name="annuler" id="annuler"/>
</form>

</body>


Et enfin voici le code de la troisième page qui va effectuer l'enregistrement dans la base de données: "insertion_voeux.php"

if(isset($_POST['envoyer']))
{
//On récupère les valeurs entrées par l'utilisateur :
/*
$civ=$_POST['civ'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$contact=$_POST['contact'];
$email=$_POST['email'];
$message=$_POST['message'];
//On construit la date d'aujourd'hui strictement comme sql la construit
$today = date("y-m-d");
  • /


//On se connecte
connectbdsogim();
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO clients VALUES("","'.$civ.'","'.$nom.'","'.$prenom.'","'.$contact.'","'.$email.'","'.$message.'","'.$today.'")';
/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion
mysql_close();


}
?>

Merci d'avance pour l'aide.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Busima Messages postés 55 Date d'inscription mercredi 10 février 2016 Statut Membre Dernière intervention 29 janvier 2021
11 févr. 2016 à 00:34
Pour faire simple :


page 1 (ton formulaire)


<form action="page_validation.php" method="post">
	<label> nom : <label>
	<input type="text" name="nom">
	<br>
	<label> prénom : <label>
	<input type="text" name="prenom">
	<input type="submit" name="valider" value="suivant">
</form>



Page 2 : la page de validation
<?php

//récupération des variables issues de la page 1
$nom = isset($_POST['nom']) ? $_POST['nom'] : '' ;
$prenom = isset($_POST['prenom']) ? $_POST['prenom'] : '' ;


//récupération des variables issues de la confirmation
$nom2 = isset($_POST['nom2']) ? $_POST['nom2'] : '' ;
$prenom2 = isset($_POST['prenom2']) ? $_POST['prenom2'] : '' ;

if($nom2 && $prenom2){
 //si les champs sont confirmés
 //ici tu places le traitement que tu veux en faire après confirmation
 // par exemple :
 echo "<pre><br>Vous avez confirmé !</pre>";
}

//Affichage des informations saisies (pour validation)
echo "<div style='border : 1px solid balck'>";
echo " <br>Votre nom est : ".$nom;
echo " <br> Votre prénom est : ".$prenom;
echo "</div>";

// on recréé un formulaire avec des champs masqués
// pour faire transiter les informations une fois de plus
//après confirmation
?>
<form action="" method="post">
	<label> nom : <label>
	<input type="hidden" name="nom2" value="<?php echo $nom;?>">
	<br>
	<label> prénom : <label>
	<input type="hidden" name="prenom2" value="<?php echo $prenom;?>">
	<input type="submit" name="confirmer" value="Confirmer">
</form>


0
Busima > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié par jordane45 le 11/02/2016 à 16:05
Merci Jordane mais je ne comprends pas la deuxième partie là:

/récupération des variables issues de la confirmation
$nom2 = isset($_POST['nom2']) ? $_POST['nom2'] : '' ;
$prenom2 = isset($_POST['prenom2']) ? $_POST['prenom2'] : '' ;

if($nom2 && $prenom2){
 //si les champs sont confirmés
 //ici tu places le traitement que tu veux en faire après confirmation
 // par exemple :
 echo "<pre><br>Vous avez confirmé !</pre>";
}



Si tu peux me donner plus d'info sur $nom2 et $prenom2. je ne comprends pas comment les utiliser.


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Busima
11 févr. 2016 à 16:09
1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


2 - Qu'est-ce que tu ne comprends pas au juste ????
A savoir que là .. je ne t'ai donné qu'un exemple .....

.En premier lieu ... je récupère le contenu des variables envoyées par le formulaire
c'est ce que fait le code :
 $nom2 = isset($_POST['nom2']) ? $_POST['nom2'] : '' ;
 $prenom2 = isset($_POST['prenom2']) ? $_POST['prenom2'] : '' ;

(ces variables proviennent du formulaire caché qui est créé lorsque tu arrives sur la page de confirmation )

Ensuite.. je vérifie que ces variables ne sont pas vides ... et je m'en sert pour faire un traitement.....
d’ailleurs le code serait plutôt :
if( !empty($nom2) && !empty($prenom2) ){

Traitement qui peut être .. de l'affichage et/ou de l'insertion en BDD ..... A toi de voir selon tes besoins.
0
Busima > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
14 févr. 2016 à 00:36
Merci
0