[php] formulaire + cookies

Fermé
orangebudd Messages postés 60 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 12 avril 2010 - 13 mai 2008 à 21:39
 mascio - 11 juin 2014 à 17:16
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'
A voir également:

3 réponses

Torkass Messages postés 166 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 21 janvier 2016 95
13 mai 2008 à 23:32
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é
<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. :)
7
Bon boulot qui m'a bien servi mais je fais quelques observations:
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.
0
Profil bloqué
13 mai 2008 à 22:08
Montre nous déjà la page en question destinée à gérer les cookies.là on verra comment les placer
0
orangebudd Messages postés 60 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 12 avril 2010 4
13 mai 2008 à 22:13
Salut slum dunk!

En fait je ne sais pas si je dois vraiment utiliser les cookies... c'était ma première interrogation ? ^^

Sinon, je n'ai pas encore fait la page, je m'en occupe demain, et je uppe le topic ^^

Merci!
0