[php] formulaire + cookies
orangebudd
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
mascio -
mascio -
Bonjour à tous,
Je dois mettre en place une page spéciale sur le site internet de ma boite destinée à recevoir la commande (semestrielle) d'un de nos clients.
Il faudrait en fait que le client, après une petite identification, remplisse plusieurs champs d'un formulaire, et nous valide sa commande. Jusque là pas de problème je pense, par contre il y a une petite chose que je dois ajouter, et je ne sais pas trop comment faire:
Je m'explique: le client est unique, chaque semestre la commande sera donc quasi-similaire à part pour quelques champs (qqté, lieu, etc.) J'aimerais donc mettre en place un petit historique sur chaque champ (cookies surement ??? ) pour que le client n'ait pas à tout ressaisir à chaque fois. (ce sera aussi utile si jamais les commandes viennent à se multiplier)
Merci d'avance à tous ceux qui m'aideront!
Bye'
Je dois mettre en place une page spéciale sur le site internet de ma boite destinée à recevoir la commande (semestrielle) d'un de nos clients.
Il faudrait en fait que le client, après une petite identification, remplisse plusieurs champs d'un formulaire, et nous valide sa commande. Jusque là pas de problème je pense, par contre il y a une petite chose que je dois ajouter, et je ne sais pas trop comment faire:
Je m'explique: le client est unique, chaque semestre la commande sera donc quasi-similaire à part pour quelques champs (qqté, lieu, etc.) J'aimerais donc mettre en place un petit historique sur chaque champ (cookies surement ??? ) pour que le client n'ait pas à tout ressaisir à chaque fois. (ce sera aussi utile si jamais les commandes viennent à se multiplier)
Merci d'avance à tous ceux qui m'aideront!
Bye'
A voir également:
- [php] formulaire + cookies
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Supprimer les cookies - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
3 réponses
Salut, si certaines infos ne bougent quasiment jamais, autant les enregistrer dans un cookie, effectivement ; tes clients apprécieront que tu leur facilites la tâche.
Pour enregistrer les infos insérées, voici la marche à suivre :
Tu ajoutes un champs caché pour que le cookie ne se crée que si ce formulaire est envoyé
Juste avant le formulaire, tu ajoute ceci :
$Infos_client[1] est égal à la seconde (le lieu), et ainsi de suite avec toutes les infos que tu auras renseigné dedans.
Tu peux aussi les redéfinir avec de nouvelles variables comme ceci :
Maintenant, dans le formulaire, il ne faut pas non plus oublier de remplir les champs avec ce que contient le cookie, s'il existe ! Voici un exemple, je ne sais pas quels champs tu as, donc je ne met que ces deux là :
Voilà, j'espère avoir pu t'aider. :)
Pour enregistrer les infos insérées, voici la marche à suivre :
Tu ajoutes un champs caché pour que le cookie ne se crée que si ce formulaire est envoyé
<input type="hidden" name="Infos_client" />Ensuite tu mets ça pour al création du cookie (ça doit être placé avant toute autre ligne de code sur ta page, même avant la balise <html>)
<? if (isset($_POST['Infos_client'])) { $expire = 365*24*3600; // On définit la durée du cookie : 1 an setcookie("Infos_client", $_POST['Quantite']&|&$_POST['Lieu'], time()+$expire); // On crée le cookie avec les données désirées } ?>Là, tu remarqueras que j'ai séparé les diverses infos par des &|& ! C'est pour les différencier par la suite.
Juste avant le formulaire, tu ajoute ceci :
<? if (isset($_COOKIE['Infos_client'])) { $Infos_client = explode("&|&", $_COOKIE['Infos_client']); // On distingue les données séparées par des &|& } ?>Là, $Infos_client[0] est égal à la première donnée enregistrée, c'est à dire la quantité.
$Infos_client[1] est égal à la seconde (le lieu), et ainsi de suite avec toutes les infos que tu auras renseigné dedans.
Tu peux aussi les redéfinir avec de nouvelles variables comme ceci :
<? $Quantite = $Infos_client[0]; $Lieu = $Infos_client[1]; ?>
Maintenant, dans le formulaire, il ne faut pas non plus oublier de remplir les champs avec ce que contient le cookie, s'il existe ! Voici un exemple, je ne sais pas quels champs tu as, donc je ne met que ces deux là :
<input type="text" name="quantite" value="<? echo $Quantite; ?>" /><br /> <input type="text" name="lieu" value="<? echo $Lieu; ?>" />Si le cookie n'existe pas, les champs resteront vides.
Voilà, j'espère avoir pu t'aider. :)
setcookie() doit être placé dans la feuille de traitement appelée par le formulaire sinon il n'est pas interprété vu qu'il est placé en tout début de page.
Pourquoi créer un cookie caché alors qu'on en a des visibles?
Si le cookie n'existe pas, j'ai un message d'erreur du genre undefined; il faut donc tester l'existence du cookie avec isset() avant de l'appeler.