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/04/2007, 14h24   #1
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
Par défaut problème de caddie,sessions

Bonjour j'essai de programmer un caddie
donc j'ai ma fiche produit ici=>

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
<?php mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("bdd"); // Sélection de la base de données
 
$reponse = mysql_query("SELECT * FROM wear_homme WHERE id=".$_GET['id']); // Requête SQL
while ($donnees = mysql_fetch_array($reponse) ) // mise en forme du résultat de la requête
{
?>
 
<h1 style="color: white;font-size: 30px;">T-shirt <?php echo $donnees['titre'] ;?></h1>
<img src="<?echo $donnees['image2']; ?>" alt="" /><br><h2 style="color: white;font-size: 18px;">Prix : <?echo $donnees['prix'];?></h2><h2 style="color: white;font-size: 18px;">Description</h2><?php
echo $donnees['description'];
 
?>
<form method="post" action="paniertraitement.php?">
<label>Taille: 
<select name="taille">
    <option value="S">S</option>
    <option value="M">M</option>
    <option value="L">L</option>
    <option value="XL">XL</option>
</select></label><br>
<input type="submit" value="Ajouter au panier" />
<input type="hidden" name="titre" value="<? echo $donnees['titre']; ?>" />
<input type="hidden" name="couleur" value="<? echo $donnees['couleur']; ?>" />
<input type="hidden" name="prix" value="<? echo $donnees['prix']; ?>" />
</form>
<?php
}
mysql_close(); // Déconnexion de MySQL
?>
cette fiche produit cherche les infos dans ma bdd,j'ai juste fait passer l'id du produit depuis mon catalogue
quand je clique sur ajouter à mon catalogue c'est sensé aller dans mon panier et ça y vas
voilà mon panier

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
<?php
session_start();
/* Initialisation du panier */ 
$_SESSION['panier']=array();
/* Subdivision du panier */
$_SESSION['panier']['taille'] = array(); 
$_SESSION['panier']['titre'] = array(); 
$_SESSION['panier']['couleur'] = array(); 
$_SESSION['panier']['prix'] = array(); 
 
 
 
/* Article exemple */ 
$article=array();
$article['taille']=$_POST['taille'];
$article['titre']=$_POST['titre'];
$article['couleur']=$_POST['couleur'];
$article['prix']=$_POST['prix'];
 
/* On vérifie l'existence du panier, sinon, on le crée */ 
if(!isset($_SESSION['panier']))
{
/* Initialisation du panier */ 
$_SESSION['panier']=array();
/* Subdivision du panier */ 
$_SESSION['panier']['taille'] = array(); 
$_SESSION['panier']['titre'] = array(); 
$_SESSION['panier']['couleur'] = array(); 
$_SESSION['panier']['prix'] = array(); 
}
/* fonction permettant d'ajouter l'article */
function ajout($article)
{
    array_push($_SESSION['panier']['taille'],$article['taille']);
    array_push($_SESSION['panier']['titre'],$article['titre']);
    array_push($_SESSION['panier']['couleur'],$article['couleur']);
    array_push($_SESSION['panier']['prix'],$article['prix']);
}
/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */
ajout($article);
?>
là je récupère l'ID,la taille le prix et la couleur avec un POST caché,et je les mets dans la variable de session

la aussi ça m'ajoute mon produit dans le paniernmais le problême est que ça ne garde pas mes données,si je retourne dans la boutique et que j'essai d'ajouter un article,je n'aurai pas le produit que j'avais mis avant,je ne peux avoir qu'in article dans mon panier
quelqu'un pourrait m'aider?
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 15h00   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
faut ajouter des session_start() en haut de toutes les pages ou tu as besion d'utiliser tes variables de session.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 15h50   #3
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
oui ça a été fait ,mon problême est que les produits ne s'ajoutent pas dans le panier,j'ai toujours un seul produit
j'ai mon catalogue,sur ce catalogue j'ai mis un session start,sur chaque produit il y a un lien qui mène vers la fiche produit
une fois sur la fiche produit,j'ajoute au pannier à l'aide d'une balise submit de formulaire,ainsi je transmet la taille,la couleur et la référence de mon produit avec des input cachés..
mes produits sont alors sur la page du panier dont le code est plus haut..
je retourne sur ma page catalogue(ou il y a le session start),je sélectionne un autre produit,ce qui me mène vers sa fiche et j'ajoute dans le panier
ça rajoute le deuxième produit sélectionné mais le premier a disparu
....
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 15h20   #4
Membre du Club
 
Grégory D
Inscription : avril 2007
Messages : 48
Détails du profil
Informations personnelles :
Nom : Grégory D
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 48
Points : 52
Points : 52
Bin c'est normal, à chaque fois que tu ajoutes un objet dans ton panier tu fais ceci :

Code :
1
2
 
$_SESSION['panier']['kekChose'] = taVar;
Le problème est que tu n'a pas d'indice tableau et que à chaque fois c'est l'article $_SESSION['panier'] qui est écrasé.

Préfère une syntaxe comme celle là :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$_SESSION['nbObjPanier'] = 0;
$_SESSION['panier'] = array();
 
$i = $_SESSION['nbObjPanier'];
$_SESSION['panier'][$i] = array();
$_SESSION['panier'][$i]['taille'] = truc;
....
 
$i++;
$_SESSION['nbObjPanier'] = $i;
J'espère que cela va répondre à ta question.
padawan31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 01h05   #5
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
merci beaucoup,j'essai çà des ce soir
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 14h53   #6
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
après beaucoups de modifications,çà ne fonctionne toujours pas,j'avais abandonné à cause de mes esamens et là je m'y remets
le problême est le suivant maintenant j'ai mis ton code
et quand je liste ce qu'il y a dans l'arret j'obtiens çà



Array
(
[0] => Array
(
[taille] => S
[prix] => 25€
[titre] => blingpinx
)

)


c'est très bien on dirait que la $_SESSION['nbreobjets'] fonctionne mais quand je sélectionne un autre article ça écrase toujours le précedent(j'ai des session_start() partout voilà mon code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
extract($_GET);
 
$_SESSION['nbreobjets'] = 0;
$_SESSION['panier'] = array();
$i = $_SESSION['nbreobjets'];
$_SESSION['panier'][$i] = array();
$_SESSION['panier'][$i] ['taille'] = $taille;
$_SESSION['panier'][$i] ['prix'] = $prix;
$_SESSION['panier'][$i] ['titre'] = $titre;
$i++;
$_SESSION['nbreobjets'] = $i;
echo '<pre>';
print_r($_SESSION['panier']);
echo '</pre>';
 
 
?>
j'avais au préalable fait passer la taille,le prix et le titre de l'idée dans un get
pakkun 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 10h30.


 
 
 
 
Partenaires

Hébergement Web