Besoin d'aide pour réaliser un caddie..

Besoin d'aide pour réaliser un caddie.. - PHP - Programmation

Marsh Posté le 21-08-2005 à 11:13:13    

Bonjour,  
Je souhaiterais réaliser un caddie assez sommaire pour ce site: http://www.vannerie-lambert.com/catalogue.php
Comme je n'ai jamais utilisé les sessions jusque là, j'ai un peu de mal..  :??:  
 
En gros, je voudrais qu'une fois un produit sélectionné (présence d'un ID dans l'url)
cet objet est sauvegardé dans la session. (on sélectionne l'objet en cliquant sur le caddie pour l'instant).
 
Donc quand on clique sur le caddie, on doit voir: "vous avez ajouté *** au caddie"
et plus bas: "ce que contient votre caddie:
- objet 1
-objet 2
...
 
C'est ça qui me pause probleme.
j'ai essayé en créant un compteur. Ce n'est surement pas la meilleure idée...
 
voici le code:

Code :
  1. <?php
  2. session_start();
  3. mysql_connect("localhost", "root", "" );
  4. mysql_select_db("catalogue" );
  5. if (!isset ($_SESSION['compteur']))
  6. {$_SESSION['compteur'] = 0;}
  7. if (empty($_GET['id']))
  8. {
  9. echo 'Vous n\'avez pas selectionné d\'objet';
  10. }
  11. else
  12. {
  13. $compteur = $_SESSION['compteur']++;
  14. $reponse = mysql_query('SELECT * FROM catalogue WHERE id='.$_GET['id'].' ');
  15. $donnees = mysql_fetch_array($reponse);
  16. $_SESSION['$compteur'] = $donnees['nom'];
  17. echo 'Vous venez d\'ajouter <b>'.$donnees['nom'].'</b> au caddie';
  18. echo'<br/>';
  19. echo 'ce que contient votre caddie:';
  20. for ($i = 1; $i <= $compteur+1; $i++)
  21. {
  22.  echo $_SESSION['$i'];
  23.  echo'<br/>';
  24.  
  25. }
  26. }
  27. ?>


 
Ma boucle FOR ne fontionne pas...
 
Un petit coup de pouce serait la bienvenue...  :wahoo:


Message édité par nombril le 07-09-2005 à 18:54:41
Reply

Marsh Posté le 21-08-2005 à 11:13:13   

Reply

Marsh Posté le 21-08-2005 à 13:30:02    

Essaye print_r($_SESSION); pour voir ce que contient vraiment ton systéme de session.
Au moins, tu pourras voir si le probléme est dans la boucle.
 
Petite piste à suivre : une chanine entre ' reste tel quelle, pas de recherche de présence de variables donc. D'ailleur, c'est une mauvaise habitude et quasiment toujours une mauvaise idée de mettre des noms de variables à l'intérieur de chaine de caractéres.

Reply

Marsh Posté le 21-08-2005 à 14:52:07    

omega2 a écrit :

Essaye print_r($_SESSION); pour voir ce que contient vraiment ton systéme de session.
Au moins, tu pourras voir si le probléme est dans la boucle.
 
Petite piste à suivre : une chanine entre ' reste tel quelle, pas de recherche de présence de variables donc. D'ailleur, c'est une mauvaise habitude et quasiment toujours une mauvaise idée de mettre des noms de variables à l'intérieur de chaine de caractéres.


 
c'est fait, c'est bien dans ma boucle que ça ne fontionne pas.

Citation :

Undefined index: $i


 
Ce que je ne comprends pas c'est que je veux afficher
$_SESSION['1']
$_SESSION['2']
$_SESSION['3']
$_SESSION['...']
 
alors pourquoi ça ne fontionne pas sachant que $i vaut de 1 jusqu'a $compteur ???
je suis archi débutant en php... donc ne me renvoyez pas trop balader.. [:aia]

Reply

Marsh Posté le 21-08-2005 à 16:02:21    

$_SESSION['1']  
$_SESSION['2']  
$_SESSION['3']  
 
cool, mais '1' <> '$i' :lol:
entre ' il n'y a aucune vérification de présence de nom de variable donc pas de transformation du contenu suite à la présence d'un $.

Reply

Marsh Posté le 21-08-2005 à 16:59:33    

Alors quelle est la solution pour ma boucle?

Reply

Marsh Posté le 21-08-2005 à 17:05:53    

La solution? Ne pas mettre de ' autour des noms de variables.

Reply

Marsh Posté le 21-08-2005 à 17:36:30    

ha ok, merci
mais que veux dire ce message:

Citation :

Notice: Undefined offset: 5 in c:\documents and sett...


Message édité par nombril le 21-08-2005 à 17:37:03
Reply

Marsh Posté le 21-08-2005 à 17:52:13    

ca veut simplement dire qu'il n'y a rien dans cette case là.

Reply

Marsh Posté le 21-08-2005 à 18:54:25    

J'ai changé de plan.
j'ai mis ceci sur la page de catalogue:
 

Code :
  1. $_SESSION['achats'][] = array ( "id" => $_GET['id']);


 
ce qui fait que quand je fais un lien vers cette page avec un id de 3 ça donne ça:

Code :
  1. Array ( [achats] => Array ( [0] => Array ( [id] => 3 ) ) )


 
ensuite je remets un article ayant pour id 4 dans le panier:

Code :
  1. Array ( [achats] => Array ( [0] => Array ( [id] => 3 ) [1] => Array ( [id] => 4 ) ) )


etc.
 
maintenant je voudrais savoir comment afficher l'id enregistrée dans l'array 0 puis 1 etc.

Code :
  1. for ($i=0; $i < count($_SESSION['achats']); $i++)
  2.   {
  3.   echo $_SESSION['achats'][$i][]; //<-- c'est ici que ça cloche
  4.   }


 
quelle serait la bonne boucle?
En gros il faut afficher un tableau qui est dans un tableau si j'ai bien compris?
Merci


Message édité par nombril le 21-08-2005 à 19:02:30
Reply

Marsh Posté le 21-08-2005 à 19:02:38    

essaye foreach c'est fait pour ça

Reply

Marsh Posté le 21-08-2005 à 19:02:38   

Reply

Marsh Posté le 21-08-2005 à 19:07:27    

ok, je vais voir pour foreach.
Mais je viens de trouver:
 
  for ($i=0; $i < count($_SESSION['achats']); $i++)
  {
  $tableau =  $_SESSION['achats'][$i];
echo $tableau['id'];
  }

Reply

Marsh Posté le 21-08-2005 à 19:09:04    

echo $_SESSION['achats'][$i]['id']; marcherait aussi je pense. :)

Reply

Marsh Posté le 21-08-2005 à 19:19:54    

C'est ton site nombril?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-08-2005 à 19:36:10    

exacte, ça marche lol, moi qui pensais avoir trouvé le truc!!
 
et pour te répondre "esox_ch", oui c'est le site que je suis en train de faire en ce moment (mon premier en fait)

Reply

Marsh Posté le 21-08-2005 à 20:15:48    

C'est encore moi. :ange:  
voilà, je dois mettre un lien pour pouvoir supprimer une ligne du tableau.
un lien de ce genre:<a href="caddie.php?retirer=RETIRER&id_produit='.$i.'">retirer</a>
 
ensuite sur ma page caddie.php je mets ça:  

Code :
  1. if (isset($_GET['retirer']) && ($_GET['retirer'] == "RETIRER" ))
  2.   {
  3.   for ($i=0; $i < count($_SESSION['achats']); $i++)
  4.     {
  5.     if ($i == $_GET['id_produit'] )
  6.       {
  7.       array_splice($_SESSION['achats'], $i);
  8.       }
  9.     }
  10.   }


 
sauf que voilà, si dans l'url j'ai id_produit=3 il va bien me supprimer la 4ieme ligne, mais aussi la 5ieme puisque la 5ieme va devenir la 4ieme et ainsi de suite jusqu'a ce qu'il n'y ait pas plus de 3 lignes.
 
Avec un break ce n'est pas possible puisque dans l'adresse il y aura toujours retirer=RETIRER&id_produit=3
donc je pense que le seul moyen est de faire une redirection pour que cette adresse se transforme en caddie.php
 
Comment fait-on cela?
le

Code :
  1. Header ("Location: caddie.php" );
  2. exit();


ne fontionne pas ou alors je ne sais pas m'en servir. Qu'en pensez vous?

Reply

Marsh Posté le 21-08-2005 à 20:15:53    

Bon alors je ne vais pas te dire que tu es un criminel incompétent mais juste un incompétent téméraire. Parceque faire un site ou il y a de l'argent qui tourne avec des notions aussi restreintes que les tiennes, c'est vraiment avoir envie de se faire vider les poches


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-08-2005 à 20:19:41    

faut bien commencer un jour!! Et puis ce n'est pas une usine. C'est pour un artisan... donc a la limite il va vérifier les commandes.
Je ne vais pas non plus faire un systeme de paiement en ligne!
 
ce site est surtout pour m'entrainer justement...  :)

Reply

Marsh Posté le 21-08-2005 à 20:21:16    

tu voulais pas de l'aide pour realise un panier plutot ? :lol:

Reply

Marsh Posté le 21-08-2005 à 20:23:30    

bin oui, mais j'avance... maintenant j'en suis à créer les liens pour supprimer les objets du panier!!

Reply

Marsh Posté le 21-08-2005 à 20:29:19    

nombril a écrit :

faut bien commencer un jour!! Et puis ce n'est pas une usine. C'est pour un artisan... donc a la limite il va vérifier les commandes.
Je ne vais pas non plus faire un systeme de paiement en ligne!
 
ce site est surtout pour m'entrainer justement...  :)


 
Faut bien commencer, oui. Fait toi un forum, un site avec tes photos de vacances ou qqch du genre. On ne s'entraine pas sur un site de production (meme si c'est pour le vendeur de panier du coin),  c'est comme si je te disais que je vais m'entrainer sur ton fils parceque je suis entrain de lire un livre sur la medecine ... Rien de grave ... il a juste une petite jambe cassée ... rien de mortel..
 
Quand j'entend ce genre de propos je me demande comment qqn peut etre assez stupide pour payer quoique ce soit à un mec pareil..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-08-2005 à 20:39:05    

Eho faut pas trop pousser non plus,  
il me paye rien du tout et c'est pas le genre de truc qui te regarde.
 
Donc si t'as rien de plus intelligent à faire que de renvoyer paitre ceux qui ont du mal (parce que toi tu dois etre super balaise justement), ce serait cool que tu ailles autre part. Merci.

Reply

Marsh Posté le 23-08-2005 à 00:36:53    

Ah lala esox_ch rien ne change dis-donc...
nombril fait attention quand même car mon sujet sur les panier a été vérrouillé ;) Si il te le vérouille dis le moi j'aurais une solution ;)
@+


Message édité par zzarbi974 le 23-08-2005 à 00:54:52

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 00:41:33    

nombril a écrit :


Comment fait-on cela?
le

Code :
  1. Header ("Location: caddie.php" );
  2. exit();


ne fontionne pas ou alors je ne sais pas m'en servir. Qu'en pensez vous?


C'est ce que je fais aussi pour "Nettoyer" l'url... Enfin sans le Exit...


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 00:42:05    

zzarbi974 a écrit :

Ah lala esox_ch rien ne change dis-donc...
nombril fait attention quand même car mon sujet sur les panier a été vérrouillé ;) Si te le vérouille dis le moi j'aurais une solution ;)
@+


 
Effectivement rien de change. Il y a toujours autant de touristes qui ont visiblement pas capté que comme on ne devient pas chiurgien en jouant au DocteurMaboule, on ne devient pas Webdev en telechargeant une version try de FrontPage ou DWX et en les utilisant comme WYSIWYG... Et c'est franchement inquiétant que des entreprises, ou meme des particuliers, comprennent pas que c'est eux-memes qui se mettent en danger en engageant des incompétents qui viennent poser des questions à 2 balles (10 sec de recherche sur google/ce forum repondent en general à ce genre de questions) sur un forum


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 23-08-2005 à 00:54:11    

Oui oui c'est cela, non mais franchement je vois pas ce qui a de mal à demander de l'aide...
Et puis là il a pas l'air de programmer avec du php sous DWX...
Engager des incompétents... Encore une fois il critique...
Tu n'a pas enore montrè que tu était mieux,
 
Bon j'en arrete là paske :
1- Ca devient débile
2- Tu ne comprend pas le mot Entre-aide
3- C'est pas mon topic alors je vais pas nuir a son intégrité...
 
Au fait esox_h avant que tu passe par là y avait des personnes qui l'aidait !Et comme il dit, il fait pas un systeme de commande mais plustôt un systeme de bon de commande... que le webmaster vérifiera... Rien de dangereux ne circule sur le site.. Mais de tt facon pour toi c'est simple faut être dieux pour pouvoir faire un panier.


Message édité par zzarbi974 le 23-08-2005 à 00:56:03

---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 02:37:32    

zzarbi974 a écrit :

Mais de tt facon pour toi c'est simple faut être dieux pour pouvoir faire un panier.


 
Nan faut être compétent, et non pas uin bricoleur du dimanche.
 
Jvais pas confier l'électricité de ma maison à mon voisin qui sais à peine poser une prise.

Reply

Marsh Posté le 23-08-2005 à 03:28:14    

gatsusat a écrit :

Nan faut être compétent, et non pas uin bricoleur du dimanche.
 
Jvais pas confier l'électricité de ma maison à mon voisin qui sais à peine poser une prise.


Franchement si, si il sait déja posé un prise c'est mieux que rien...
Si y savait rien faire je ve bien mais, là non !


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 23-08-2005 à 07:08:51    

zzarbi974 a écrit :

Franchement si, si il sait déja posé un prise c'est mieux que rien...
Si y savait rien faire je ve bien mais, là non !


 
Voila c'est bien ce que je dis, il y a trop de gens qui comprennent pas qu'on peut pas engager le 1er bouffon qui passe juste parcequ'il coute moins cher.
 
Et meme si c'est un systeme de bon de commande, il y a le nom/prenom/adresse/autre de la personne qui a commander le panier qui circulent sur le net, et donc le fait de ne pas avoir une securité maximale sur ces données personnelles constitue un délit puni par la loi


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-08-2005 à 19:34:07    

C'est bon les gars, c'est pas la peine de s'énerver pour si peut.
 
esox_ch est de toutes façons associable.
Et comme il pourrissait mon topic, je suis allé voir autre part. ça marche impecable...
 
C'est marrant quand meme, parce que ça fait 2-3 fois que je viens me renseigner sur ce forum et ça marche toujours bien jusqu'à ce qu'un plouc déboule... !
 
merci à Zzarbi974, merci aux autres qui m'ont aidé.
A la prochaine (sans vous les ploucs  :non: )  

Reply

Marsh Posté le 24-08-2005 à 20:58:40    

le plouc comme tu dis est 1000X plus compétent que toi et essaye de t'expliquer la réalité des choses.
 
Tu codes comme un pied, sans savoir exactement ce que tu fais, alors laisse tomber, fais toi d'abord un forum, ensuite tu pourras faire ce que tu veux

Reply

Marsh Posté le 24-08-2005 à 21:40:44    

gatsusat a écrit :

le plouc comme tu dis est 1000X plus compétent que toi et essaye de t'expliquer la réalité des choses.
 
Tu codes comme un pied, sans savoir exactement ce que tu fais, alors laisse tomber, fais toi d'abord un forum, ensuite tu pourras faire ce que tu veux


On doit faire un forum comment ??? je veu bien essayer !


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 21:48:56    

Zzarbi974 > Un forum bien fait, complet et qui reste rapide même avec de foirte charge et un historique de plusieurs centaines de message, c'est plusieurs mois de boulot. Je suis pas sur que ca soit une bonne idée de te pousser à te lancer dans un tel projet sans conaitre parfaitement bien les bases du langage. Il vaut mieux que tu finisses ton ccadie en faisant attention à ce qu'on t'as dit et que tu suive quelques tutoriels et que tu lises aussi beaucoups de discutions sur le forum tout en applicant ce que tu lis. Ca te permettra de t'améliorer.
Aprés, si t'as vraiment envie de ton forum, réfléchis pendant quelques jours à comment tu vas le faire : comment stocker les messages les comtpes utilisateurs ... et comment organiser le code php et comment se passera la navigation des utilisateurs sur le forum ... C'est vraiment un boulot imense pour un débutant. Mais c'est sur qu'aprés, tu t'y conaitra beaucoup mieux en php. ;)

Reply

Marsh Posté le 24-08-2005 à 23:40:47    

C'est sur que ça a  pas l'air d'etre simple, mais bon si aprés ça on dira que j'my connais suffisament en php alors ça vaut le détour...MErci quand meme pour les conseilles


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 24-08-2005 à 23:49:26    

omega2 a écrit :

Zzarbi974 > Un forum bien fait, complet et qui reste rapide même avec de foirte charge et un historique de plusieurs centaines de message, c'est plusieurs mois de boulot. Je suis pas sur que ca soit une bonne idée de te pousser à te lancer dans un tel projet sans conaitre parfaitement bien les bases du langage. Il vaut mieux que tu finisses ton ccadie en faisant attention à ce qu'on t'as dit et que tu suive quelques tutoriels et que tu lises aussi beaucoups de discutions sur le forum tout en applicant ce que tu lis. Ca te permettra de t'améliorer.
Aprés, si t'as vraiment envie de ton forum, réfléchis pendant quelques jours à comment tu vas le faire : comment stocker les messages les comtpes utilisateurs ... et comment organiser le code php et comment se passera la navigation des utilisateurs sur le forum ... C'est vraiment un boulot imense pour un débutant. Mais c'est sur qu'aprés, tu t'y conaitra beaucoup mieux en php. ;)


 
On appelle cela une analyse et on ne fait rien sans faire une analyse au préalable, soit tout poser sur papier, les actions, ... ou utiliser des méthodes d'analyse comme UML ou MERISE, mais bon c'est plus bourrin
 
/me retourne potasser ses cours

Reply

Marsh Posté le 24-08-2005 à 23:54:50    

C'est aux discutions sur le forum qu'on le véra si tu deviens bon en php.
Et puis, même en restant nul en php, on peut faire un forum. Mais il sera tout merdique au niveau du code et surement tout mal conçu. J'ai bien fait un chat en php mal écrit comme rpemier délopement php. :lol:
Ceci dit, en général, une fois le forum finis avec toutes les optiosn qui vont bien, on s'y conait mieux en php qu'au départ. ;)

Reply

Marsh Posté le 25-08-2005 à 03:08:27    

gatsusat a écrit :

On appelle cela une analyse et on ne fait rien sans faire une analyse au préalable, soit tout poser sur papier, les actions, ... ou utiliser des méthodes d'analyse comme UML ou MERISE, mais bon c'est plus bourrin
 
/me retourne potasser ses cours


Ouai perso j'ai des notion en méthode merise pour base de donnée(enfin quelque 17/20 ;) lol), mais perso j'ai toujours pas compris commen faire pour l'exploiter avec mysql... avec access j'ai compris mais lé clé étrangère avec mysql :pt1cable:  enfin bref sinon avant de faire des code compliqué je fais tjrs des pti schéma sur feuille (un qausi-algo), mais je compte me faire un forum lol pas aussi sophistiqué que phpbb, déja sans les themes...
Enfin vu que j'ai un peu de temps à perdre et que je m'ennuie pendant ces vaccance...


---------------
Chouette cette Inspiron 9300
Reply

Marsh Posté le 25-08-2005 à 08:21:26    

zzarbi974 a écrit :

Ouai perso j'ai des notion en méthode merise pour base de donnée(enfin quelque 17/20 ;) lol), mais perso j'ai toujours pas compris commen faire pour l'exploiter avec mysql... avec access j'ai compris mais lé clé étrangère avec mysql :pt1cable:  enfin bref sinon avant de faire des code compliqué je fais tjrs des pti schéma sur feuille (un qausi-algo), mais je compte me faire un forum lol pas aussi sophistiqué que phpbb, déja sans les themes...
Enfin vu que j'ai un peu de temps à perdre et que je m'ennuie pendant ces vaccance...


 
Si tu fais les choses comme il faut, les themes c'est juste un css qui change .. apres c'est clair que si tu te bases sur phpbb ... tu vas sortir une usine a gaz boiteuse..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-08-2005 à 09:15:30    

Avec mysql, il me semble que les clé étrangéres existent si on cré des tables de type innodb. Mais en base de donéne, les clés étrangéres, ca sert surtout à empécher au niveau de la base de donné la création de ligne non affecté à un émélemnt de la table mére et aussi la supression des tables reliés quand on suprime des données de la table principale. Par exemple, la supression d'un pseudo surpimera l'ensemble des messages et des drapeaux de cette personne là sans qu'on ai besoin de le faire à la main.
Mais de toute maniére, même si on utilise pas les clés étrangéres, on peut quand même organiser la base de maniére à ce que la valeur contenu dans telle colone soit l'index de telle autre table. :)

Reply

Marsh Posté le 25-08-2005 à 13:47:13    

Hi je debarque pour donner mon point de vue :)
Esox_ch je trouve tout a fait normal que tu lui conseils de pas se lancer sur un truc qu'il n'est peut etre pas capable de faire. Mais bon dans ce cas précis, les commandes sont vérifiées apparement à la main. Mafois ça peut etre un entrainement pour le V2 du site quand il aura bien en main le sujet.
Surtout que je comprend pas ce que ça vous fait, il se ferait payé,ok, "l'ordure y nous pique notre boulot" (je pense que certains d'entre vous sont webmaster donc je comprend). Mais bon la à la limite ça met pas de thune en danger et pis vaut mieux qui face ça pour ce genre de site et vienne demander de l'aide, au lieu de faire un caddie pour un site sans verification de commande et sans demander d'aide. La ça serait pire :) .
Pour l'idée de faire un forum... mouais fait plutot un truc sur un sujet qui te pationne au moins tu lacheras pas en cours de route :).
 
Voila voila :p

Reply

Marsh Posté le 25-08-2005 à 14:04:08    

Donc :D
En ce qui me concerne, je suis étudiant (même pas en informatique... bouhhh quelle honte), et en ce moment je fais un stage dans une boite d'informatique (mais pas de webdev). Je suis webdev durant les week-end et mes vacances (et c'est pas le site de la voisine ou je sais pas quoi :D En général c'est des entreprises et donc je dois payer mes impots..).
Bon apres vous avoir racconté ma vie,
 
C'est vrai que de l'argent ne peut pas etre volé en direct, mais son systeme fait quand meme transiter des informations privées (son site est pas vraiment sensible, mais admettons qu'apres ça il ré-utilise ses scripts pour un site X ou qqch du style...) avec une securité insuffisante, et c'est interdit par la loi meme si apperemment pas mal de personnes ont pas compris que le net n'est pas un lieu de non-droit.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed