Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1072 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme sessions panier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme sessions panier

n°1242922
vincent220​8
Posté le 10-11-2005 à 10:31:53  profilanswer
 

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:

Code :
  1. <?
  2. session_start();
  3. $_SESSION['achats'][$id] = array( 'ref' => $ref, 'designation' => $designation, 'prixht' => $prixht, 'quantite' => $quantite );
  4. ?>


 
formulaire ajout articles sur mapage.php:

Code :
  1. <form name="form1" method="post" action="http://www.informatiques-consommables.com/commandes/panier.php">
  2.                         <table width="100%"  border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
  3.                           <tr bordercolor="#BDDFE1" bgcolor="#FFFFFF">
  4.                             <td width="14%" class="menugauche"><table width="100%" border="0" cellpadding="0" cellspacing="0" >
  5.                               <tr>
  6.                                 <td><div align="center"><img src="../../design/img/no_photo.gif" width="45" height="45"></div></td>
  7.                               </tr>
  8.                               <tr>
  9.                                 <td><input name="ref" type="text" id="champ1" value="1ALP1" size="8" maxlength="8" onFocus="this.blur()"></td>
  10.                               </tr>
  11.                             </table></td>
  12.                             <td width="51%" class="textes"><textarea name="designation" cols="25" rows="4" id="champ2" onFocus="this.blur()">PACK de 20 lecteurs de
  13. disquettes 3.5 PCE 1.44MB
  14. (coloris : beige)</textarea></td>
  15.                             <td width="14%" class="textes"><input name="prixht" type="text" id="champ3" value="106.46" size="8" maxlength="8" onFocus="this.blur()"></td>
  16.                             <td width="11%" class="textes"><select name="quantite" id="champ4">
  17.                               <option value="0" selected>0</option>
  18.                               <option value="1">1</option>
  19.                               <option value="2">2</option>
  20.                               <option value="3">3</option>
  21.                               <option value="4">4</option>
  22.                               <option value="5">5</option>
  23.                               <option value="6">6</option>
  24.                               <option value="7">7</option>
  25.                               <option value="8">8</option>
  26.                               <option value="9">9</option>
  27.                             </select></td>
  28.                             <td width="10%" class="textes"><div align="right">
  29.                               <input name="submit" type="Image" src="../../design/img/panier.jpg" alt="Ajouter" border="0">
  30.                             </div></td>
  31.                           </tr>
  32.                         </table>
  33.                       </form>


 
code panier.php:

Code :
  1. <?php
  2. // On appelle la session
  3. session_start();
  4. // On affiche une phrase résumant les infos sur l'utilisateur courant
  5. echo 'reference : ',$_POST['ref'],'<br />
  6.      designation : ',$_POST['designation'],'<br />
  7.      prix HT : ',$_POST['prixht'],'<br />
  8.      quantite : ',$_POST['quantite'],'<br />';
  9. ?>
  10. <p>&nbsp;</p>
  11. <a href="javascript:history.go(-1)">Retour</a>


 
merci pour vos reponses

mood
Publicité
Posté le 10-11-2005 à 10:31:53  profilanswer
 

n°1242929
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-11-2005 à 10:42:20  profilanswer
 

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 :o ]

n°1242933
vincent220​8
Posté le 10-11-2005 à 10:47:12  profilanswer
 

pas exactement que si l'on retourne dans panier les données restent presente.

n°1243000
vincent220​8
Posté le 10-11-2005 à 11:40:53  profilanswer
 

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.

n°1243019
omega2
Posté le 10-11-2005 à 11:52:37  profilanswer
 

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é?

n°1243023
vincent220​8
Posté le 10-11-2005 à 11:55:27  profilanswer
 

snif.. oui , je suis completement perdu...

n°1243027
vincent220​8
Posté le 10-11-2005 à 11:57:35  profilanswer
 

la je les transmet au panier donc il n'est peut etre pas necessaire de tout reprendre a zero?

n°1243029
vincent220​8
Posté le 10-11-2005 à 11:58:51  profilanswer
 

MAIS LE PANIER ne garde pas en memoire c'est ca mon premier probleme, pour test: http://www.informatiques-consommab [...] 1/alps.php

n°1243060
omega2
Posté le 10-11-2005 à 12:17:48  profilanswer
 

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.

n°1243066
shakpana
des fois, j'me demande ...
Posté le 10-11-2005 à 12:20:07  profilanswer
 

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 [:pingouino]
 
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 ... ?


Message édité par shakpana le 10-11-2005 à 12:22:25

---------------
Il faut toujours arrondir les angles -- Raymond Poincaré (à moins que ce soit de Cicéron)
mood
Publicité
Posté le 10-11-2005 à 12:20:07  profilanswer
 

n°1243067
art_dupond
je suis neuneu... oui oui !!
Posté le 10-11-2005 à 12:20:43  profilanswer
 

Pour que ton panier soit "gardé en mémoire", il faut utiliser les sessions.
 
pour faire simple, tu peux faire dans panier.php

Code :
  1. $_SESSION['panier'][]['ref'] = $_POST['ref'];
  2. $_SESSION['panier'][]['designation'] = $_POST['designation'];
  3. $_SESSION['panier'][]['prixht'] = $_POST['prixht'];
  4. $_SESSION['panier'][]['quantite'] = $_POST['quantite'];


 
 
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 :
  1. echo $_SESSION['panier'][0]['ref'];


 
 
voilà, avec ca tu devrais t'en sortir. Après, tu pourrais essayer avec une classe panier, mais essaye déjà ca.
 


---------------
oui oui
n°1243074
vincent220​8
Posté le 10-11-2005 à 12:23:48  profilanswer
 

merci pour vos reponses omega2 et art_dupond m'y remet de suite

n°1243075
shakpana
des fois, j'me demande ...
Posté le 10-11-2005 à 12:24:40  profilanswer
 

Code :
  1. $_POST['prixht'];


oui, mais faudrait arreter ça, direct !


---------------
Il faut toujours arrondir les angles -- Raymond Poincaré (à moins que ce soit de Cicéron)
n°1243080
art_dupond
je suis neuneu... oui oui !!
Posté le 10-11-2005 à 12:28:13  profilanswer
 

pourquoi :??:


---------------
oui oui
n°1243082
shakpana
des fois, j'me demande ...
Posté le 10-11-2005 à 12:29:23  profilanswer
 


as-ton avis ...
si chacun peut choisir le prix des articles qu'il commande, c'est la faillite directe, non ?


---------------
Il faut toujours arrondir les angles -- Raymond Poincaré (à moins que ce soit de Cicéron)
n°1243084
omega2
Posté le 10-11-2005 à 12:31:45  profilanswer
 

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)

n°1243087
art_dupond
je suis neuneu... oui oui !!
Posté le 10-11-2005 à 12:33:41  profilanswer
 

ah ok comme ca... je pensais que j'avais fait une erreur de transmission de variable ;)


Message édité par art_dupond le 10-11-2005 à 12:33:58

---------------
oui oui
n°1243128
vincent220​8
Posté le 10-11-2005 à 13:28:15  profilanswer
 

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'];
?>

n°1243139
vincent220​8
Posté le 10-11-2005 à 13:42:27  profilanswer
 

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.

n°1243211
vincent220​8
Posté le 10-11-2005 à 14:46:22  profilanswer
 

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>

n°1243215
vincent220​8
Posté le 10-11-2005 à 14:47:29  profilanswer
 

par contre je suis ennuyer pour ajouter plusieurs articles

n°1243225
vincent220​8
Posté le 10-11-2005 à 14:57:24  profilanswer
 

je ne sais plus quoi faire pour repartir et ajouter d'autre article dans le panier.

n°1243259
shakpana
des fois, j'me demande ...
Posté le 10-11-2005 à 15:16:36  profilanswer
 

il te manque des bases importantes : manipulation des tableaux ... RTFM
 
quand tu fais ça :

Code :
  1. $tableau[]['a'] = 1;
  2. $tableau[]['b'] = 2;
  3. $tableau[]['c'] = 3;

ça donne ça

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [a] => 1
  6.         )
  7.     [1] => Array
  8.         (
  9.             [b] => 2
  10.         )
  11.     [2] => Array
  12.         (
  13.             [c] => 3
  14.         )
  15. )

donc il faut que tu arrives à ça

Code :
  1. $tableau[0]['a'] = 1;
  2. $tableau[0]['b'] = 2;
  3. $tableau[0]['c'] = 3;


pour avoir ça  

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [a] => 1
  6.             [b] => 2
  7.             [c] => 3
  8.         )
  9. )


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[])

Message cité 1 fois
Message édité par shakpana le 10-11-2005 à 15:17:27

---------------
Il faut toujours arrondir les angles -- Raymond Poincaré (à moins que ce soit de Cicéron)
n°1243266
vincent220​8
Posté le 10-11-2005 à 15:21:33  profilanswer
 

merci shakpana, intervention utile et sympas :-) v me casser les meninges

n°1243282
vincent220​8
Posté le 10-11-2005 à 15:30:12  profilanswer
 

probablement une question legere mais ft -il que je cré une autre page ou je travail tjrs dans panier.php?

n°1243285
art_dupond
je suis neuneu... oui oui !!
Posté le 10-11-2005 à 15:32:15  profilanswer
 

shakpana a écrit :

il te manque des bases importantes : manipulation des tableaux ... RTFM
 
quand tu fais ça :

Code :
  1. $tableau[]['a'] = 1;
  2. $tableau[]['b'] = 2;
  3. $tableau[]['c'] = 3;

ça donne ça

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [a] => 1
  6.         )
  7.     [1] => Array
  8.         (
  9.             [b] => 2
  10.         )
  11.     [2] => Array
  12.         (
  13.             [c] => 3
  14.         )
  15. )

donc il faut que tu arrives à ça

Code :
  1. $tableau[0]['a'] = 1;
  2. $tableau[0]['b'] = 2;
  3. $tableau[0]['c'] = 3;


pour avoir ça  

Code :
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [a] => 1
  6.             [b] => 2
  7.             [c] => 3
  8.         )
  9. )


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[])


 
oups c'est vrai :p
 
ma faute :jap:  


---------------
oui oui
n°1243304
vincent220​8
Posté le 10-11-2005 à 15:44:16  profilanswer
 

mes recherches de tutos sur la manipulation de tableau s'averent infructueuses, auriez vous une indication supplementaire car je patauge.

n°1243335
omega2
Posté le 10-11-2005 à 16:25:43  profilanswer
 

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.

n°1243360
vincent220​8
Posté le 10-11-2005 à 16:47:56  profilanswer
 

merci, je vais essayer je pense de me rabatre sur un systeme plus simple..

n°1243762
vincent220​8
Posté le 11-11-2005 à 09:32:03  profilanswer
 

<?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 d‚j… pr‚sent
 
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 &euro; </td>
    <td width="25%">Quantit&eacute;</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>&nbsp;</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>&nbsp;</p>

n°1243805
vincent220​8
Posté le 11-11-2005 à 12:26:46  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme sessions panier

 

Sujets relatifs
[ECLIPSE] ClearCase plugin->> Probleme RésoluProbleme de resize des thumbnails galerie photo...
[PHP] Besoin d'aide pour un systeme de login avec des sessionsProblème avec Spip
problème lien html dans une iframe svpdebutant sessions
petit probleme formulaire[Mysql]Resolu Probleme de migration 3.23 -> 4.1
problème numero=source.numero[win32] Problème Impression
Plus de sujets relatifs à : probleme sessions panier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR