probleme sessions panier - PHP - Programmation
Marsh Posté le 10-11-2005 à 10:42:20
Que je sois sur de bien comprendre tu fais
mapage -> panier ->mapage
Et tu voudrais que les données qu'il y avait dans ton formulaire soit présentes ?
[ps: ton code c'est nawak ]
Marsh Posté le 10-11-2005 à 10:47:12
pas exactement que si l'on retourne dans panier les données restent presente.
Marsh Posté le 10-11-2005 à 11:40:53
le code n'en est qu'au debut je sais mais si quelqu'un pouvait me donner une nouvelle indication pour me permettre d'avancer se serait sympa.
Marsh Posté le 10-11-2005 à 11:52:37
Question con : ca serait pas mieux de récupérer les infos du panier dans la session vu que le panier est censé les conaitre quel que soit les pages par où on est passé?
Marsh Posté le 10-11-2005 à 11:57:35
la je les transmet au panier donc il n'est peut etre pas necessaire de tout reprendre a zero?
Marsh Posté le 10-11-2005 à 11:58:51
MAIS LE PANIER ne garde pas en memoire c'est ca mon premier probleme, pour test: http://www.informatiques-consommab [...] 1/alps.php
Marsh Posté le 10-11-2005 à 12:17:48
Quand tu remplis le panier, t'envoie les données dans la session.
Et quand tu affiches le contenu du panier, tu relis le contenu de la session.
Pas besoin de s'embêter à afficher des données temporaires qui viennent d'ailleur et qui seront plus là dés la page suivante.
Marsh Posté le 10-11-2005 à 12:20:07
1. je parie un "PACK de 20 lecteurs de disquettes 3.5" que tu n'as pas de session_start sur /Catalogue/1/alps.php
2. c'est quoi ce délire du onfocus="this.blur()" ??? une protection antipirate
PS : je viens donc de passer commande d'un Pack de 20 à 1 centime HT
EDIT: ceci dit /commandes/panier.php n'envoi pas cookie non plus, donc y'aurait-il pas comme un bug de la config des sessions ... ?
Marsh Posté le 10-11-2005 à 12:20:43
Pour que ton panier soit "gardé en mémoire", il faut utiliser les sessions.
pour faire simple, tu peux faire dans panier.php
Code :
|
Ca te crée une veriable de session 'panier' qui est un tableau de produits.
chaque produit "contient" un tableau avec (ref, designation, ...)
Ensuite, pour accéder au premier produit du panier, tu fais
Code :
|
voilà, avec ca tu devrais t'en sortir. Après, tu pourrais essayer avec une classe panier, mais essaye déjà ca.
Marsh Posté le 10-11-2005 à 12:23:48
merci pour vos reponses omega2 et art_dupond m'y remet de suite
Marsh Posté le 10-11-2005 à 12:24:40
Code :
|
oui, mais faudrait arreter ça, direct !
Marsh Posté le 10-11-2005 à 12:29:23
art_dupond a écrit : pourquoi |
as-ton avis ...
si chacun peut choisir le prix des articles qu'il commande, c'est la faillite directe, non ?
Marsh Posté le 10-11-2005 à 12:31:45
art_dupond > par ce que je suis sur que tes clients seront super content de pouvoir tout acheter à -20% (une vente ne peut être anulé que si le prix de vente est tellement diférent du prix de vente normal que l'acheteur est censé avoir deviné que le prix était éroné) et que ton patron sera vraiment mécontent de tout vendre à perte ce qui en plus lui vaudrait pas mal de procés. (en france du moins pour les procés)
Marsh Posté le 10-11-2005 à 13:28:15
Ce qui deonne ceci pour panier.php:
<?php
// On appelle la session
session_start();
// On affiche une phrase résumant les infos sur l'utilisateur courant
echo $_SESSION['panier'][]['ref'] = $_POST['ref'];
$_SESSION['panier'][]['designation'] = $_POST['designation'];
$_SESSION['panier'][]['prixht'] = $_POST['prixht'];
$_SESSION['panier'][]['quantite'] = $_POST['quantite'];
?>
Marsh Posté le 10-11-2005 à 13:42:27
j'ai un probleme : pour l'affichage j'ai repris ceci :
<td><?php echo $_SESSION['panier'][0]['ref'];?></td>
<td><?php echo $_SESSION['panier'][0]['designation'];?></td>
<td><?php echo $_SESSION['panier'][0]['prixht'];?></td>
<td><?php echo $_SESSION['panier'][0]['quantite'];?></td>
http://www.informatiques-consommab [...] panier.php et cela m'affiche uniquement la reference et pas les autre valeurs.
Marsh Posté le 10-11-2005 à 14:46:22
voila qui est mieux:
<td width="25%"><?php echo $_SESSION['panier'][0]['ref'];?></td>
<td width="25%"><?php echo $_SESSION['panier'][1]['designation'];?></td>
<td width="25%"><?php echo $_SESSION['panier'][2]['prixht'];?></td>
<td width="25%"><?php echo $_SESSION['panier'][3]['quantite'];?></td>
Marsh Posté le 10-11-2005 à 14:47:29
par contre je suis ennuyer pour ajouter plusieurs articles
Marsh Posté le 10-11-2005 à 14:57:24
je ne sais plus quoi faire pour repartir et ajouter d'autre article dans le panier.
Marsh Posté le 10-11-2005 à 15:16:36
il te manque des bases importantes : manipulation des tableaux ... RTFM
quand tu fais ça :
Code :
|
ça donne ça
Code :
|
donc il faut que tu arrives à ça
Code :
|
pour avoir ça
Code :
|
Donc fais fonctionner tes meninges ...
allez, une piste ultra-basique :
- le comptage d'éléments dans $tableau
une autre beaucoup plus mieux, mais avec un nouveau concept pour toi :
- les références ($ref = & $tableau[])
Marsh Posté le 10-11-2005 à 15:21:33
merci shakpana, intervention utile et sympas :-) v me casser les meninges
Marsh Posté le 10-11-2005 à 15:30:12
probablement une question legere mais ft -il que je cré une autre page ou je travail tjrs dans panier.php?
Marsh Posté le 10-11-2005 à 15:32:15
shakpana a écrit : il te manque des bases importantes : manipulation des tableaux ... RTFM
ça donne ça
donc il faut que tu arrives à ça
|
oups c'est vrai
ma faute
Marsh Posté le 10-11-2005 à 15:44:16
mes recherches de tutos sur la manipulation de tableau s'averent infructueuses, auriez vous une indication supplementaire car je patauge.
Marsh Posté le 10-11-2005 à 16:25:43
Voilà mon indication assez précise je pense : si on précise pas d'indice à php, il créra un nouvel indice.
Donc si on veut faire un tableau de tableau, soit on ne lui donne pas d'indice et il faudra lui doner directement le tableau complet à insérer, soit on lui donne un indice et on peut remplir le tableau intérieur petit à petit.
Marsh Posté le 10-11-2005 à 16:47:56
merci, je vais essayer je pense de me rabatre sur un systeme plus simple..
Marsh Posté le 11-11-2005 à 09:32:03
<?php
session_start();
if (isset($_SESSION['panier']['nb_art'])) { // controle si un article existe deja dans le panier
$id_art_sel=$_SESSION['panier']['nb_art']+1; // numero de l'article qui sera ajout
} else {$id_art_sel=1;} // si il n'y a pas d'articles dj
prsent
echo '<form name="form1" method="post" action="panier.php">
<INPUT type="hidden" name="id_art" value="'.$id_art_sel.'">'; // pour passage de l'id article
?>
<table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
<tr bordercolor="#BDDFE1" bgcolor="#FFFFFF">
<td width="14%" class="menugauche"><table width="100%" border="0" cellpadding="0" cellspacing="0" >
<tr>
<td><div align="center"><img src="../../design/img/no_photo.gif" width="45" height="45"></div></td>
</tr>
<tr>
<td><input name="ref" type="text" id="champ1" value="1ALP1" size="8" maxlength="8" onFocus="this.blur()"></td>
</tr>
</table></td>
<td width="51%" class="textes"><textarea name="designation" cols="25" rows="4" id="champ2" onFocus="this.blur()">PACK de 20 lecteurs de
disquettes 3.5 PCE 1.44MB
(coloris : beige)</textarea></td>
<td width="14%" class="textes"><input name="prixht" type="text" id="champ3" value="106.46" size="8" maxlength="8" onFocus="this.blur()"></td>
<td width="11%" class="textes"><select name="quantite" id="champ4">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select></td>
<td width="10%" class="textes"><div align="right">
<input type="submit" value="ajouter">
</div></td>
</tr>
</table>
</form>
</body>
</html>
Pour ta page panier :
<?php
session_start();
$_SESSION['panier']['nb_art']=$_POST['id_art']; // nombre d'articles dans le panier
$_SESSION["panierID$_POST[id_art]"]['ref'] = $_POST['ref'];
$_SESSION["panierID$_POST[id_art]"]['designation'] = $_POST['designation'];
$_SESSION["panierID$_POST[id_art]"]['prixht'] = $_POST['prixht'];
$_SESSION["panierID$_POST[id_art]"]['quantite'] = $_POST['quantite'];
//$_SESSION=array();
//print_r($_SESSION);
?>
<style type="text/css">
<!--
body,td,th {
color: #006699;
}
body {
background-image: url(../design/styles/fond.gif);
}
-->
</style>
<link href="../design/styles/styles.css" rel="stylesheet" type="text/css">
<table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
<tr bordercolor="#BDDFE1" bgcolor="#BDDFE1" class="menugauche">
<td width="25%">Reference</td>
<td width="25%" bordercolor="#BDDFE1">Description</td>
<td width="25%">Prix HT € </td>
<td width="25%">Quantité</td>
</tr>
</table>
<?php
for ($i=1;$i <= $_SESSION['panier']['nb_art']; $i++) { // pour chaque article du panier
echo '<table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF" >
<tr>
<td width="25%">'.$_SESSION["panierID$i"]['ref'].'</td>
<td width="25%">'.$_SESSION["panierID$i"]['designation'].'</td>
<td width="25%">'.$_SESSION["panierID$i"]['prixht'].'</td>
<td width="25%">'.$_SESSION["panierID$i"]['quantite'].'</td>
</tr>
</table>';
}
?>
<p> </p>
<table width="100%" border="1" bordercolor="#FFFFFF" bgcolor="FFFFFF" >
<tr>
<td bgcolor="#FFFFFF"><a href="javascript:history.go(-1)">Retour</a></td>
</tr>
</table>
<p> </p>
Marsh Posté le 11-11-2005 à 12:26:46
donc comme ceci je peu ajouter plusieurs articles mais si je reouvre mon panier les données ont disparues:
test:
http://www.informatiques-consommab [...] /alps1.php
Marsh Posté le 10-11-2005 à 10:31:53
bonjour à tous, voici mon probleme:
j'arrive a recuperer les infos dans panier.php mais si je retourne sur ma_page.php pour revenir sur panier.php les données ont disparu, je sais que le probleme vient de moi mais je seche:
session:
formulaire ajout articles sur mapage.php:
code panier.php:
merci pour vos reponses