bonjou,
je vourdrai rajouter un panier vituel j ai cette page que j inclue dan un ma page qui affiche les produits et ou on oeut cliquer sur ajouter au panier.
page inclu:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
<?php
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*                Fonctions de base de gestion du panier                   */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
 
function ajout($select)
{
    $ajout = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        if(!verif_panier($select['id']))
        {
            array_push($_SESSION['panier']['id_article'],$select['id']);
            array_push($_SESSION['panier']['id_article']['libelle']=$select['libelle']);
            array_push($_SESSION['panier']['id_article']['qte']=$select['qte']);
            array_push($_SESSION['panier']['id_article']['prix']=$select['prix']);
            $ajout = true;
        }
        else
        {
            $ajout = modif_qte($select['id'],$select['qte']);
        }
    }
    return $ajout;
}
 
/**
* Modifie la quantité d'un article dans le panier après vérification que nous ne somme pas en phase de paiement
*
* @param String $ref_article    Identifiant de l'article à modifier
* @param Int $qte               Nouvelle quantité à enregistrer
* @return Mixed                 Retourne VRAI si la modification a bien eu lieu,
*                               FAUX sinon,
*                               "absent" si l'article est absent du panier,
*                               "qte_ok" si la quantité n'est pas modifiée car déjà correctement enregistrée.
*/
function modif_qte($ref_article, $qte)
{
    /* On initialise la variable de retour */
    $modifie = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        if(nombre_article($ref_article) != false && $qte != nombre_article($ref_article))
        {
            /* On compte le nombre d'articles différents dans le panier */
            $nb_articles = count($_SESSION['panier']['id_article']);
            /* On parcoure le tableau de session pour modifier l'article précis. */
            for($i = 0; $i < $nb_articles; $i++)
            {
                if($ref_article == $_SESSION['panier']['id_article'][$i])
                {
                    $_SESSION['panier']['qte'][$i] = $qte;
                    $modifie = true;
                }
            }
        }
        else
        {
            /* L'article est absent du panier, donc on ne peut pas modifier la quantité ou bien
            * le nombre est exactement le même et il est inutile de le modifier
            * Si l'article est absent, comme on a ni la taille  ni le prix, on ne peut pas l'ajouter
            * Si le nombre est le même, on ne fait pas de changement. On peut donc retourner un autre
            * type de valeur pour indiquer une erreur qu'il faudra traiter à part lors du retour d'appel
            */
            if(nombre_article($ref_article) != false)
            {
                $modifie = "absent";
            }
            if($qte != nombre_article($ref_article))
            {
                $modifie = "qte_ok";
            }
        }
    }
    return $modifie;
}
 
/**
* Supprimer un article du panier après vérification que nous ne somme pas en phase de paiement
*
* @param String     $ref_article numéro de référence de l'article à supprimer
* @return Mixed     Retourne TRUE si la suppression a bien été effectuée,
*                   FALSE sinon, "absent" si l'article était déjà retiré du panier
*/
function supprim_article($ref_article)
{
    $suppression = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        /* On vérifie que l'article à supprimer est bien présent dans le panier */
        if(nombre_article($ref_article) != false)
        {
            /* création d'un tableau temporaire de stockage des articles */
            $panier_tmp = array("id_article"=>array(),"qte"=>array(),"taille"=>array(),"prix"=>array());
            /* Comptage des articles du panier */
            $nb_articles = count($_SESSION['panier']['id_article']);
            /* Transfert du panier dans le panier temporaire */
            for($i = 0; $i < $nb_articles; $i++)
            {
                /* On transfère tout sauf l'article à supprimer */
                if($_SESSION['panier']['id_article'][$i] != $ref_article)
                {
                    array_push($panier_tmp['id_article'],$_SESSION['panier']['id_article'][$i]);
                    array_push($panier_tmp['qte'],$_SESSION['panier']['qte'][$i]);
                    array_push($panier_tmp['taille'],$_SESSION['panier']['taille'][$i]);
                    array_push($panier_tmp['prix'],$_SESSION['panier']['prix'][$i]);
                }
            }
            /* Le transfert est terminé, on ré-initialise le panier */
            $_SESSION['panier'] = $panier_tmp;
            /* Option : on peut maintenant supprimer notre panier temporaire: */
            unset($panier_tmp);
            $suppression = true;
        }
        else
        {
            $suppression == "absent";
        }
    }
    return $suppression;
}
 
/**
* Supprimer un article du panier : autre méthode.
*
* @param String     $ref_article numéro de référence de l'article à supprimer
* @param Boolean    $reindex : facultatif, par défaut, vaut true pour ré-indexer le tableau après
*                   suppression. On peut envoyer false si cette ré-indexation n'est pas nécessaire.
* @return Mixed     Retourne TRUE si la suppression a bien été effectuée,
*                   FALSE sinon, "absent" si l'article était déjà retiré du panier
*/
function supprim_article2($ref_article, $reindex = true)
{
    $suppression = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        $aCleSuppr = array_keys($_SESSION['panier']['id_article'], $ref_article);
 
        /* sortie la clé a été trouvée */
        if (!empty ($aCleSuppr))
        {
            /* on traverse le panier pour supprimer ce qui doit l'être */
            foreach ($_SESSION['panier'] as $k=>$v)
            {
                foreach($aCleSuppr as $v1)
                {
                    unset($_SESSION['panier'][$k][$v1]);    // remplace la ligne foireuse
                }
                /* Réindexation des clés du panier si l'option $reindex a été laissée à true */
                if($reindex == true)
                {
                    $_SESSION['panier'][$k] = array_values($_SESSION['panier'][$k]);
                }
                $suppression = true;
            }
        }
        else
        {
            $suppression = "absent";
        }
    }
    return $suppression;
}
 
/**
* Fonction qui supprime tout le contenu du panier en détruisant la variable après
* vérification qu'on ne soit pas en phase de paiement.
*
* @return Mixed    Retourne VRAI si l'exécution s'est correctement déroulée, Faux sinon et "inexistant" si
*                  le panier avait déjà été détruit ou n'avait jamais été créé.
*/
function vider_panier()
{
    $vide = false;
    if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
    {
        if(isset($_SESSION['panier']))
        {
            unset($_SESSION['panier']);
            if(!isset($_SESSION['panier']))
            {
                $vide = true;
            }
        }
        else
        {
            /* Le panier était déjà détruit, on renvoie une autre valeur exploitable au retour */
            $vide = "inexistant";
        }
    }
    return $vide;
}
 
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/*                 Fonctions annexes de gestion du panier                  */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
 
/**
* Vérifie la quantité enregistrée d'un article dans le panier
*
* @param String $ref_article référence de l'article à vérifier
* @return Mixed Renvoie le nombre d'article s'il y en a, ou Faux si cet article est absent du panier
*/
function nombre_article($ref_article)
{
    /* On initialise la variable de retour */
    $nombre = false;
    /* Comptage du panier */
    $nb_art = count($_SESSION['panier']['id_article']);
    /* On parcoure le panier à la recherche de l'article pour vérifier le cas échéant combien sont enregistrés */
    for($i = 0; $i < $nb_art; $i++)
    {
        if($_SESSION['panier']['id_article'][$i] == $ref_article)
        $nombre = $_SESSION['panier']['qte'][$i];
    }
    return $nombre;
}
 
/**
* Calcule le montant total du panier
*
* @return Double
*/
function montant_panier()
{
    /* On initialise le montant */
    $montant = 0;
    /* Comptage des articles du panier */
    $nb_articles = count($_SESSION['panier']['id_article']);
    /* On va calculer le total par article */
    for($i = 0; $i < $nb_articles; $i++)
    {
        $montant += $_SESSION['panier']['qte'][$i] * $_SESSION['panier']['prix'][$i];
    }
    /* On retourne le résultat */
    return $montant;
}
 
/**
* Vérifie la présence d'un article dans le panier
*
* @param String $ref_article référence de l'article à vérifier
* @return Boolean Renvoie Vrai si l'article est trouvé dans le panier, Faux sinon
*/
function verif_panier($ref_article)
{
    /* On initialise la variable de retour */
    $present = false;
    /* On vérifie les numéros de références des articles et on compare avec l'article à vérifier */
    if( count($_SESSION['panier']['id_article']) > 0 && array_search($ref_article,$_SESSION['panier']['id_article']) !== false)
    {
        $present = true;
    }
    return $present;
}
 
/**
* Fonction de verrouillage du panier pendant la phase de paiement.
*
*/
function preparerPaiement()
{
    $_SESSION['panier']['verrouille'] = true;
    header("Location: URL_DU_SITE_DE_BANQUE");
}
 
/**
* Fonction qui va enregistrer les informations de la commande dans
* la base de données et détruire le panier.
*
*/
function paiementAccepte()
{
    /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    /*   Stockage du panier dans la BDD   */
    /* ajoutez ici votre code d'insertion */
    /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    unset($_SESSION['panier']);
}
?>
et voici ma page ou j utilise la fonction ajouter mais ca affiche ca:

Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\panier.php on line 15

Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\panier.php on line 16

Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\panier.php on line 17

Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\panier.php on line 18
array(4) { ["id_article"]=> NULL ["libelle"]=> NULL ["qte"]=> NULL ["prix"]=> NULL }
voici le code ma page afficherannonce:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php 
session_start();
$action=$_GET['action'];
 
.........................
				$body.='<a href="afficherAnnonce.php?action=ajouter&amp;details='.$idcateg.'&amp;categorie=1"><img src="../images/caddie.gif">Ajouter au panier</a>
				
				</td>
						
					
				
			
		</tr>
	</table>';
 
if ($action == ajouter)
{
$select['id'] = $pro['produit_id'];
$select['libelle'] = $pro['produit_nom'];
$select['qte'] = 1;
$select['prix'] = $pro['produit_prix'];
ajout($select);
print_r($_SESSION);
} 
?>
a votre avis que faire.
merci c est important.