Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/09/2011, 23h13   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
Par défaut Récupérer les infos du panier du tutoriel par mail

Bonsoir à tous,



Ayant abandonné le PHP il y a voilà bien 6 ans, je me retrouve comme un gamin de 16 ans devant un Minitel, j'y comprends plus rien.

J'ai besoin de créer un petit panier pour réaliser des devis en ligne. J'ai donc utiliser le tutoriel avec les codes présents sur la page.
(http://jcrozier.developpez.com/articles/web/panier/)

Jusque là, pas de soucis, tout fonctionne bien.

Maintenant j'aimerai tout simplement ajouter une fonction mail pour récupérer les données du panier du client afin de lui réaliser un devis par la suite avec ce qu'il a choisi.

Il faut donc que je puisse réccupérer dans un mail les articles et quantités, ajouter un formulaire avec son nom, fonction, société...

Mon gros soucis, c'est qu'il choisisse un produit ou 200, il n'y a qu'une ligne : $_SESSION : panier']['libelleProduit'] et là je ne comprends pas comment réccupérer cette info pour mon mail.

Quelqu'un peut-il m'aider ?

Merci à vous;
Julien
aurenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 15h40   #2
Membre du Club
 
Sebastien
Inscription : janvier 2011
Messages : 76
Détails du profil
Informations personnelles :
Nom : Sebastien

Informations forums :
Inscription : janvier 2011
Messages : 76
Points : 50
Points : 50
Bonjour,
Si vous avez une seul produit dans votre session. Est ce que votre panier incrémente plusieur produit ?
Peut être que vous remplacer votre libellé à chaque fois sur l'ajout d'un produit.


Kirua99
kirua99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 16h17   #3
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,
Peux tu montrer ce que tu as déjà fait ?
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 21h26   #4
Invité de passage
 
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par kirua99 Voir le message
Bonjour,
Si vous avez une seul produit dans votre session. Est ce que votre panier incrémente plusieur produit ?
Peut être que vous remplacer votre libellé à chaque fois sur l'ajout d'un produit.


Kirua99
Non, il peut y avoir plusieurs produits par session. Au fil du "catalogue", les gens ajoutent les produits qui les intéressent.
aurenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 21h35   #5
Invité de passage
 
Inscription : septembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 3
Points : 0
Points : 0
Citation:
Envoyé par Thes32 Voir le message
Salut,
Peux tu montrer ce que tu as déjà fait ?
Voici le code de la page "panier.php"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<?php
session_start();
include_once("fonctions-panier.php");
 
$erreur = false;
 
$action = (isset($_POST['action'])? $_POST['action']:  (isset($_GET['action'])? $_GET['action']:null )) ;
if($action !== null)
{
   if(!in_array($action,array('ajout', 'suppression', 'refresh')))
   $erreur=true;
 
   //récuperation des variables en POST ou GET
   $l = (isset($_POST['l'])? $_POST['l']:  (isset($_GET['l'])? $_GET['l']:null )) ;
   $p = (isset($_POST['p'])? $_POST['p']:  (isset($_GET['p'])? $_GET['p']:null )) ;
   $q = (isset($_POST['q'])? $_POST['q']:  (isset($_GET['q'])? $_GET['q']:null )) ;
 
   //Suppression des espaces verticaux
   $l = preg_replace('#\v#', '',$l);
   //On verifie que $p soit un float
   $p = floatval($p);
 
   //On traite $q qui peut etre un entier simple ou un tableau d'entier
 
   if (is_array($q)){
      $QteArticle = array();
      $i=0;
      foreach ($q as $contenu){
         $QteArticle[$i++] = intval($contenu);
      }
   }
   else
   $q = intval($q);
 
}
 
if (!$erreur){
   switch($action){
      Case "ajout":
         ajouterArticle($l,$q,$p);
         break;
 
      Case "suppression":
         supprimerArticle($l);
         break;
 
      Case "refresh" :
         for ($i = 0 ; $i < count($QteArticle) ; $i++)
         {
            modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
         }
         break;
 
      Default:
         break;
   }
}
 
echo '<?xml version="1.0" encoding="utf-8"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
</head>
<body>
 
 <form action="mailler-contact.php" method="post" enctype="multipart/form-data" name="form1" id="form2">
<table width="600" style="width: 400px; font-family: Verdana, Geneva, sans-serif;">
	<tr>
	  <td height="65" colspan="3"><img src="img/petitlogo.gif" alt="" width="270" height="54" /></td>
    </tr>
	<tr>
		<td height="32" colspan="3"><strong>VOTRE DEMANDE DE DEVIS EN LIGNE</strong></td>
	</tr>
	<tr>
		<td width="200">Référence</td>
		<td width="200">Quantité</td>
		<td width="200">Action</td>
	</tr>
	<tr>
	  <td>&nbsp;</td>
	  <td>&nbsp;</td>
	  <td>&nbsp;</td>
    </tr>
	<tr>
	  <td>Nom</td>
	  <td colspan="2"><select name="civilite" id="civilite">
	    <option value="Mr" selected="selected">Mr</option>
	    <option value="Mme">Mme</option>
	    <option value="Mlle">Mlle</option>
      </select> <input name="nom" type="text" id="nom" size="20" maxlength="150" /></td>
    </tr>
	<tr>
	  <td>Société</td>
	  <td colspan="2"><input name="societe" type="text" id="societe" size="30" maxlength="150" /></td>
    </tr>
	<tr>
	  <td>Fonction</td>
	  <td colspan="2"><input name="fonction" type="text" id="fonction" size="50" maxlength="150" /></td>
    </tr>
	<tr>
	  <td height="24">Téléphone</td>
	  <td colspan="2"><input name="telephone" type="text" id="telephone" size="50" maxlength="150" /></td>
    </tr>
	<tr>
	  <td>Fax</td>
	  <td colspan="2"><input name="fax" type="text" id="fax" size="50" maxlength="150" /></td>
    </tr>
	<tr>
	  <td>email</td>
	  <td colspan="2"><input name="email" type="text" id="email" size="50" maxlength="150" /></td>
    </tr>
	<tr>
	  <td>message</td>
	  <td colspan="2"><textarea name="message" id="message" cols="80" rows="9"></textarea></td>
    </tr>
	<tr>
	  <td>&nbsp;</td>
	  <td colspan="2">&nbsp;</td>
    </tr>
	<tr>
	  <td>&nbsp;</td>
	  <td colspan="2"><input type="submit" name="button2" id="button2" value="  Envoyer  " /></td>
    </tr>
	<tr>
	  <td>&nbsp;</td>
	  <td colspan="2">&nbsp;</td>
    </tr>
 
 
	<?php
	if (creationPanier())
	{
	   $nbArticles=count($_SESSION['panier']['libelleProduit']);
	   if ($nbArticles <= 0)
	   echo "<tr><td>Votre panier est vide </ td></tr>";
	   else
	   {
	      for ($i=0 ;$i < $nbArticles ; $i++)
	      {
	         echo "<tr>";
	         echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>";
	         echo "<td><input type=\"text\" size=\"4\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\"/></td>";
 
	         echo "<td><a href=\"".htmlspecialchars("panier.php?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$i]))."\">Supprimer</a></td>";
	         echo "</tr>";
	      }
 
	      echo "<tr><td colspan=\"2\"> </td>";
	      echo "<td colspan=\"2\">";
 
	      echo "</td></tr>";
 
	      echo "<tr><td colspan=\"4\">";
	      echo "<input type=\"submit\" value=\"Mettre à jour les quantités\"/>";
	      echo "<input type=\"hidden\" name=\"action\" value=\"refresh\"/>";
 
	      echo "</td></tr>";
		      echo "</td></tr>";
 
 
	   }
	}
	?>
 
 
 
 
Et voici une partie du code, mais la principale de la page "mailler-contact.php"
 
<?
$message="$_SESSION['panier']['libelleProduit'] \nCivilite : $civilite \nNom : $nom \nSociete : $societe \nFonction : $fonction \nTelephone : $telephone \nFax : $fax \nEmail : $email 
\nMessage : $message";
$dest        = "j.aurenge@safetymatic.fr";		/* A qui s'adresse ce mail (TO) */
$subject       = "Contact site web";	
$copy_dest   = "";				/* Email pour la Copie Carbone (CC) */
$cache_dest  = "j.aurenge@safetymatic.fr";				/* Email pour la Copie Carbone (BCC) */
$redirection = "index.php";			/* Redirection vers une autre page une fois l'envoie effectué */
$priority    = "1";				/* Permet de définir la priorité du mail, les valeurs vont de 1 (urgent) à 5 (priorité basse) */
 
$reponse=StripSlashes("Votre demande a ete envoyee !"); /* Réponse de l'envoi du mail*/
 
......./........
 
?>


Merci de votre aide
aurenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web