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/2006, 05h26   #1
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
Par défaut [Sécurité] Pb de suppression dans panier, prise de tête

bonjour
voilà j'ai un petit soucis depuis un bout de temps avec la suppression d'article dans mon panier.
quand je clique sur le bouton "supprimer" il ne se passe rien du tout, aucune erreur, ça ne supprime pas, rien de chez rien.

je vous laisse mon code que voici :
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
42
43
44
45
46
47
48
49
50
51
52
53
 
 
mysql_select_db(BASE, $base);
for ($i = 0; $i <= 20 ; $i++)
{
if (($tab_com = mysql_query("SELECT ref_produit, designation_produit, prix_produit
          FROM produit
         WHERE ref_produit = '".$_SESSION['panier']['ref_produit'][$i]."' AND '".$_SESSION['panier']['quantite'][$i]."' > 0", $base)))
$res_com = mysql_fetch_array($tab_com);
 
 
$quantite = $_SESSION['panier']['quantite'][$i];
$prix = $res_com[2]*$quantite;
if ($quantite > 0)
{
echo " <tr align=\"center\">
<td><b>".$res_com[0]." </b></td>
<td><b>".$res_com[1]."</b></td>
<td><b>".$res_com[2]."</b></td>
<td><b>".$quantite."</b></td>
<td><b>".$prix."</b></td>
<td><form>
<select name=liste>";
 
echo" <OPTION VALUE=nb1>".$quantite."</OPTION>
  </select>
  </form>
 
<td><input type = 'submit' name = 'sub_form' value = 'supprimer'></td>
 
</tr>";
 
if(isset($_POST['sub_form']) AND $_POST['sub_form']== 'supprimer')
{
 
// on test si on y est
echo "<br>Je suis bien dans la boucle suppression etape 2 --> ==supprimer";
if ( isset($_SESSION['panier']['ref_produit'][$i])AND ($_POST['sub_form']== 'supprimer') )
{
echo "<br>je suis dans le cas ou on a bien une reference d&ns la session";
unset ($_SESSION['panier']['ref_produit'][$i]);
 
}
else
{
echo "<br>il n'y a pas de référence dans la session";
}
}
else
{
echo "<br>sub_form n'est pas égal à 'supprimer'";
}
}
et j'aurais une autre question : quand le client demande par exemple 2 pc, dans ma liste deroulante
Code :
1
2
 
 echo" <OPTION VALUE=nb1>".$quantite."</OPTION>
j'ai juste le "2" qui apparait, normal c'est la variable!
comment faire pour qu'il y ait dans la liste deroulante : 1, 2 au lieu de seulement 2.

merci de vouloir m'aider car ça fait un bail que j'essaye de résoudre ce problème de suppression ainsi que pour le nombre dans la liste déroulante.
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 09h21   #2
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Bon, pour la quantitée, tu fais:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
(...)
<select name=liste>";
for($i = 0; $i < $quantite; $i++)
 {
 @$quantite_list .= "<option value='nb".$i."'>".$i;
 }
echo" $quantite_list
  </select>
(...)
?>
Tu adaptes ton code, c'est améliorable un max.
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 09h30   #3
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Bon, pas très beau ton script

On continue.

Tu n'es pas dans des balises 'form' (html) au moment ou tu cliques sur 'supprimer'. Il ne va donc rien se passer!

Une fois tes balises 'form' en places, ca marchera.

Problèmes détéctés dans ton script: fais le compte, il te manque une accolade à fermer! (peut-être celle de la boucle 'for'??)

Erf, je vais pas plus loin dans ton code, c'est le basard :/

Si j'ai bien compris, ta boucle essaye d'englober tout (il manque une acco!)
Et je comprend pas bien pourquoi tu veux tout répéter 20fois :/

Améliore déjà ca et reviens
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 18h56   #4
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
merci la liste déroulante marche

sinon pour les acolades manquantes je ne les avais pas mises dans le code ici

pour le form, j'avais complètement zapé, je l'ais remis au bon endroit

en faite j'ai du code pour les focntions du panier aff_panier.inc.php.txt
puis le code qui affiche le panier et à partir de là on peux rajouter des artciles et c'est aussi là que l'on peux effacer une quantité d'un article commandeinfo.php.txt

alors quand je supprime un article il me met une erreur :
Citation:
Notice: Undefined index: quantite
pareil pour l'article
Citation:
Undefined index: article
au niveau de commandeinfo.php, ici
Code :
1
2
$quantite = $_POST['quantite'];
$article = $_POST['article'];
j'ai rajouté des sessions pour la quantite et article mais toujours la meme erreur...

ps : je sais bien que le code est un peu naze mais c'est l'un de mes projets info et j'ai pas le temps, pour l'instant, de tout refaire.... j'essaye que tout marche correctement, pour l'instant..

merci beaucoup pour l'aide..
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 22h25   #5
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Pas de problème

Bon, j'ai récupéré tes 2 fichiers, je les réorganise (Il faut ABSOLUMENT que tu écrives clairement ton PHP) parceque la, j'ai un peu du mal

Si j'ai fini, je te passerais tous ca demain.

Sinon, dans le premier fichier, vérifie, il manque une accolade non??

Exemple pour organiser ton code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
function truc()
 {
 $truc = 0;
 
 if($truc == 1)
  echo '$truc vaut 1';
 else
  echo '$truc ne vaut pas 1 mais '.$truc;
 }
 
 if(!$machin)
  {
  $machin = 0;
  echo 'Bonjour!';
  $_SESSION['monsieur'] = 'Kikoo';
  }
 else
  echo 'Bouh!';
Voilà en gros

Bon je cherche...

Bonne continuation!

EDIT: Dans le secon fichier, Il y a 2 lignes qui me toublent...

Code :
1
2
3
4
 
'<b>'.$date = date('L/m/Y ');
 
'<b>'.$date2 = date('d/m/Y H:i:s');
Tu m'expliques?
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 22h32   #6
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Décidement, je m'en sors pas!

J'ai trouvé une ligne:

Code :
  _SESSION['panier']['quantite'][$_SESSION['ref_produit']] = $_SESSION['panier']['quantite'][$_SESSION['ref_produit']]+$quantite;
??

Tu as tronconné ton code!!
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 22h41   #7
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Arg! Ton code est en carton

Code :
1
2
3
 
$quantite = $_POST['quantite'];
$article = $_POST['article'];
Evidement que ca marche pas, ces variables ne sont JAMAIS déclarées!

La, ca devient compliqué.

Il y a tellement d'erreur, que c'est impossible de corriger!

Si tu veux, tu me mets un mp avec ce que tu veux, et je t'aiderais.
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 01h06   #8
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
en faite, la page d'avant tout ça correspond à la page où le client choisit les articles qu'il veut.. donc la quantité et l'article d'où le POST

je sais que ce panier est un peu à chier, j'avais fait ce projet ya quelque temps, l'année derniere et j'essaye de m'y remettre.
c'est qu'il y a des trucs que je ne comprends pas trop et j'avais enviie de tout erfaire mais j'ai un oral cette semaine et j'ai d'autres projets qu'il faut que je finalise.
c'est vrai que dans ce code je suis paumée par moment
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 01h14   #9
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
la 1ere, qui permet de selectionner les articles voulus (j'ai mis qu'une seule page de type d'article)
[ATTACH]Ordinateur choix[/ATTACH]
puis les fonctions du panier :
[ATTACH]Fonction panier[/ATTACH]
puis la page des commandes, où il m'est impossible de supprimer quoi que se soit :
[ATTACH]Commande[/ATTACH]


merci encore beaucoup pour ton aide
Fichiers attachés
Type de fichier : txt Ordinateur.txt (11,9 Ko, 3 affichages)
Type de fichier : txt commandeinfo.php.txt (2,6 Ko, 1 affichages)
Type de fichier : txt aff_panier.inc.php.txt (1,8 Ko, 1 affichages)
oceane751 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 10h59.


 
 
 
 
Partenaires

Hébergement Web