Sauvegarder les données d'un formulaire avec session
binousha_1022
Messages postés
41
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 -
Bonjour chers membres, j'ai besoin d'aide.
En fait j'ai crée une plateforme qui permet aux utilisateurs de se connecter, de saisir des données et de les afficher. Maintenant au cours de la saisie l'utilisateur doit avoir une page qui lui dit "Bonjour 'username' vous êtes à l'entreprise 'nomagence' et le programme doit stocker username et nomagence dans la session et les enregistrer au moment de l'enregistrement des données du formulaire. Voici les codes qui m'affichent des erreurs.
Merci d'avance!
commande.php
testcommande.php
En fait j'ai crée une plateforme qui permet aux utilisateurs de se connecter, de saisir des données et de les afficher. Maintenant au cours de la saisie l'utilisateur doit avoir une page qui lui dit "Bonjour 'username' vous êtes à l'entreprise 'nomagence' et le programme doit stocker username et nomagence dans la session et les enregistrer au moment de l'enregistrement des données du formulaire. Voici les codes qui m'affichent des erreurs.
Merci d'avance!
commande.php
<?php // Initialize the session session_start(); $serveur = "localhost"; $dbname = "base"; $user = "root"; $pass = ""; //$agence = $_SESSION["nomagence"]; $_SESSION["agence"] = $_POST; $username = $_SESSION["username"]; //Si la variable $_POST['truc'] existe, alors $truc = $_POST['truc'] sinon elle vaut NULL $agence = isset($_SESSION["nomagence"]) ? $_SESSION["nomagence"] : NULL; //ou avec !EMPTY() //Si la variable $_POST['truc'] existe et n'est pas vide, alors $truc = $_POST['truc'] sinon elle vaut NULL $agence = !empty($_SESSION["nomagence"]) ? $_SESSION["nomagence"] : NULL; $sql='SELECT * FROM users'; ?> <html> <head> <meta charset="utf-8"/> <link rel="stylesheet" href="inscription.css"/> </head> <h4>Bonjour, <b> <?php echo htmlspecialchars($_SESSION["username"]); ?> Vous ȇtes à la société <?php echo htmlspecialchars($_SESSION["nomagence"]); ?> </h4>Enrer une nouvelle commande</b> <form action="testcommande.php" method="post"> <!--<div class="c100"> <label for="agence">Agence : </label> <input type="varchar" id="agence" name="agence"> </div> <div class="c100"> <label for="nomagent">Nom de l'agent : </label> <input type="varchar" id="nomagent" name="nomagent"> </div>--> <div class="c100"> <label for="datecommande">Date commande : </label> <input type="date" id="datecommande" name="datecommande"> </div> <div class="c100"> <label for="numerocompte">N° Compte Client : </label> <input type="varchar" id="numerocompte" name="numerocompte"> </div> <div class="c100"> <label for="prenom">Prenom : </label> <input type="varchar" id="prenom" name="prenom"> </div> <div class="c100"> <label for="nom">Nom : </label> <input type="varchar" id="nom" name="nom"> </div> <div class="c100"> <label for="montant">Montant : </label> <input type="float" id="montant" name="montant"> </div> <div class="c100"> <label for="acompte">Acompte : </label> <input type="float" id="acompte" name="acompte"> </div> <div class="c100"> <label for="solde">Solde : </label> <input type="float" id="solde" name="solde"> </div> <div class="c100"> <label for="datenvoie">Date Envoie : </label> <input type="date" id="datenvoie" name="datenvoie"> </div> <div class="c100"> <input type="checkbox" id="statut" name="statut" value="envoie"> <label for="statut">Envoie</label> </div> <div class="c100" id="submit"> <input type="submit" value="Envoyer"> </div> </form> </html>
testcommande.php
<?php $serveur = "localhost"; $dbname = "base"; $user = "root"; $pass = ""; $agence = $_SESSION["agence"]; $nomagent = $_SESSION["nomagent"]; $datecommande = $_POST["datecommande"]; $numerocompte = $_POST["numerocompte"]; $prenom = $_POST["prenom"]; $nom = $_POST["nom"]; $montant = $_POST["montant"]; $acompte = $_POST["acompte"]; $solde = $_POST["solde"]; $datenvoie = $_POST["datenvoie"]; $statut = $_POST["statut"]; try{ //On se connecte à la BDD $dbco = new PDO("mysql:host=$serveur;dbname=$dbname",$user,''); $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //On insère les données reçues $sth = $dbco->prepare(" INSERT INTO commande(datecommande, numerocompte, prenom, nom, montant, acompte, solde, datenvoie, statut, agence, nomagent) VALUES(:datecommande, :numerocompte, :prenom, :nom, :monture, :montant, :acompte, :solde, :datenvoie, :statut, :agence, :nomagent)"); $sth->bindParam(':datecommande',$datecommande); $sth->bindParam(':numerocompte',$numerocompte); $sth->bindParam(':prenom',$prenom); $sth->bindParam(':nom',$nom); $sth->bindParam(':montant',$montant); $sth->bindParam(':acompte',$acompte); $sth->bindParam(':solde',$solde); $sth->bindParam(':datenvoie',$datenvoie); $sth->bindParam(':statut',$statut); $sth->bindParam(':agence',$agence); $sth->bindParam(':nomagent',$nomagent); $sth->bindParam(':service',$service); $sth->execute(); //On renvoie l'utilisateur vers la page de remerciement header("Location:choixaction.php"); } catch(PDOException $e){ echo 'Impossible de traiter les données. Erreur : '.$e->getMessage(); } ?>
A voir également:
- Sauvegarder les données d'un formulaire avec session
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Formulaire de réclamation facebook - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
- Supprimer les données de navigation - Guide
23 réponses
Une fois que je suis loguées je me redirige vers cette page "Choixaction.php".

On a ceci comme résultat:
<?php // Initialize the session session_start(); print_r($_SESSION); // Check if the user is logged in, if not then redirect him to login page if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){ header("location: login.php"); exit; } ?> <!Doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Bienvenue</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css"> <style type="text/css"> body{ font: 14px sans-serif; text-align: center; } </style> </head> <body> <center> <div class="page-header"> <h5>Bienvenue, <b><?php echo htmlspecialchars($_SESSION["username"]); ?> </b>,Vous ȇtes à ...<b> <?php echo htmlspecialchars($_SESSION["nomagence"]); ?> </b></h5> </div> <p> <a href="commande.php" title="Saisir une nouvelle commande " class="btn btn-warning">Nouvelle commande</a> <a href="choisiragenceaff.html" title="lister les commandes " class="btn btn-warning">Liste des commandes</a> <a href="listeclient.php" title="lister les commandes à livrer" class="btn btn-warning">Liste des commandesr</a> <a href="logout.php" class="btn btn-danger">Déconnexion</a> </p> </center> </body> </html>
On a ceci comme résultat:
Donc le code fonctionne....
Es-tu sûr que ta requête retourne quelque-chose ??
On va encore faire un test...
modifie à nouveau les variables de session comme ceci :
Es-tu sûr que ta requête retourne quelque-chose ??
On va encore faire un test...
modifie à nouveau les variables de session comme ceci :
// Store data in session variables $_SESSION["loggedin"] = true; $_SESSION["id"] = $id; $_SESSION["username"] = $username; $_SESSION["nomagence"] = "Agence :". $nomagence; $_SESSION["TEST"] = array($id, $username, $password, $service, $nomagence); $_SESSION["NBROWS"] = $nbRows;
Est-ce que tu lis ce que tu nous postes ?
(je parles du résultat en capture d'écran... )
Par ce que... ben.... ta requête ne retourne AUCUN résultat....
Ou alors... c'est juste que tu ne supprimes pas tes variables de session avant d'essayer de te loguer....
On va faire un test..
Tu vas créer un fichier logout.php
contenant le code suivant
puis tu vas appeller cette page.
Une fois fait, tu ré-ouvres ton formulaire de connexion... et tu refais le test...
Il serait bien également de vider tes variables de session dans les ELSE de ton formulaire de connexion
(je parles du résultat en capture d'écran... )
Par ce que... ben.... ta requête ne retourne AUCUN résultat....
Ou alors... c'est juste que tu ne supprimes pas tes variables de session avant d'essayer de te loguer....
On va faire un test..
Tu vas créer un fichier logout.php
contenant le code suivant
<?php session_start(); $_SESSION["loggedin"] = false; $_SESSION["id"] = null; $_SESSION["username"] = null; $_SESSION["nomagence"] = null; $_SESSION["TEST"] = null; $_SESSION["NBROWS"] = 0;
puis tu vas appeller cette page.
Une fois fait, tu ré-ouvres ton formulaire de connexion... et tu refais le test...
Il serait bien également de vider tes variables de session dans les ELSE de ton formulaire de connexion
} else { // Display an error message if username doesn't exist $username_err = "Nom d'utilisateur ou mot de passe incorrect."; $_SESSION["loggedin"] = false; $_SESSION["id"] = null; $_SESSION["username"] = null; $_SESSION["nomagence"] = null; $_SESSION["TEST"] = null; $_SESSION["NBROWS"] = 0; } } else { echo "Oops! Quelque chose s'est mal passé. Veuillez réessayer plus tard."; //erreur lors de la requête printf ( "Erreur sql : %s\n", mysqli_error ( $link ) ); $_SESSION["loggedin"] = false; $_SESSION["id"] = null; $_SESSION["username"] = null; $_SESSION["nomagence"] = null; $_SESSION["TEST"] = null; $_SESSION["NBROWS"] = 0; }
Ce qui n'est pas normal si tu arrives bien depuis la page que nous avons retravaillé précédemment...
On va faire un test...
Dans le code de la page précédente
tu remplaces :
par
Puis tu testes à nouveau et tu nous montres ce que t'affiches le print_r de session que tu as mis dans ta page choixaction.php