Création panier avec suppression article

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Création panier avec suppression article

Re: Création panier avec suppression article

par brother » 19 sept. 2011, 17:31

Bonjour,

Merci à tous pour votre coup de pouce...
Comme je l'expliquais, je m'exerce sur différents sujets....
J'ai modifier l'ensemble du code et voici le résultat...
<td style="text-align:center"><span><a href="delete.php?id=<?php echo $row_caddie['id_article']; ?>"><img alt="corbeille" style="height:20px; width:20px; border:0px" src="images/supprimer.gif"></a></span></td>
Et le fichier delete.php
<?php require_once('connect.inc.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

if ((isset($_GET['id'])) && ($_GET['id'] != "")) {
  $deleteSQL = sprintf("DELETE FROM table_caddie WHERE id=%s",
                       GetSQLValueString($_GET['id'], "int"));

  @mysql_select_db($Nom_bdd, $connection_base);
  $Result1 = @mysql_query($deleteSQL, $connection_base) or die(mysql_error());

  $deleteGoTo = "article.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}
if(!isset($_SESSION)) 
{ 
session_start(); 
}

 ?>
J'ai résolu mon problème..
Je vais reposer une question sur un autre post..
Concernant un soucis de fonctionnement de (mes essais) entre localhost et le server
Cordialement

Re: Création panier avec suppression article

par macgawel » 19 sept. 2011, 14:30

La première chose à faire, c'est regarder ce qu'il y a dans tes variables.
Là, d'après ton image, tu affiches $_SESSION après l'avoir utilisé.
Comme je n'ai pas le code sous les yeux, il est possible que tu le renseignes entre temps...

Et je parle de tes vairables.
Tu utilises SESSION mais aussi POST :roll:

Re: Création panier avec suppression article

par Cyrano » 16 sept. 2011, 17:08

Même en regardant le livre, puisque le code vient de là .. #-o
Je me noie 8-|.....
Normal, si tu lisais nos réponses avec un tant soit peu d'attention et si tu suivais les liens et suivais les conseils, peut-être bien que tu utiliserais la bouée qu'on te file. Si tu ne le fais pas, il va être très difficile de t'aider de quelque manière que ce soit :-k

Re: Création panier avec suppression article

par brother » 16 sept. 2011, 17:03

Bonjour,
Notice: Undefined index: id_article in /web/essai/www/panier.php on line 4.
- L'erreur provient a priori de la ligne 4 du fichier panier.php.
Merci de ton aide, j'ai bien compris que les erreurs venaient de la 4, 7, 10 et 13.
Mais voilà .... que faire :?:
Voici une image de l'écran après avoir fait :
echo "Contenu de SESSION :<br />";
print_r($_SESSION);
J'ai laissé les article du livre pour les essais....
Je ne sais pas quoi faire...
Même en regardant le livre, puisque le code vient de là .. #-o
Je me noie 8-|.....
Amicalement

Re: Création panier avec suppression article

par macgawel » 16 sept. 2011, 14:57

Ceci dit, depuis ce matin j'ai tenté de supprimer les ($_POST) en tête de ma page... Ensuite les ($_SESSION).... de réinventer et remplacer etc, mais rien ne va.
En fait, tu y vas complètement au hasard, quoi #-o

Arrête tout, pose-toi.
Et pose toi les bonnes questions :
- Que veux-tu faire ?
- Comment vas-tu le faire ?
- Où récupérer quelles variables ?
- A quoi sont censés correspondre les variables $_POST et $_SESSION ?


Et apprends à lire les messages d'erreur de PHP.
Notice: Undefined index: id_article in /web/essai/www/panier.php on line 4.
- L'erreur provient a priori de la ligne 4 du fichier panier.php.
- Tu demandes à PHP d'utiliser l'index id_article alors qu'il n'est pas défini.
$id_article=$_SESSION["id_article"]."//".$_POST["id_article"];
=> Soit $_SESSION['id_article'] n'est pas défini, soit c'est $_POST["id_article"].

La première chose à faire, c'est regarder ce qu'il y a dans tes variables. Exemple pour SESSION :
echo "Contenu de SESSION :<br />";
print_r($_SESSION);
A partir de là, essaye de comprendre pourquoi l'index id_article n'est pas défini...

Re: Création panier avec suppression article

par Cyrano » 16 sept. 2011, 14:47

Ok, mais dans ce cas, as-tu lu attentivement mon tuto sur les paniers et vu la partie concernant la suppression des articles du panier ?

Là, tu mélanges deux choses : les données postées et les données en session : il faut bien distinguer les unes des autres et ne modifier les données de session qu'à partir de données clairement identifiées et existantes dans celles qui sont ou non postées. Les codes de mon tuto sont habituellement largement commentées et chaque commentaire a son importance, je te suggère d'y replonger et de revenir avec les questionnements sur ce que tu n'y aurais pas compris.

Le bouquin dont tu parles n'est pas dans ma bibliothèque et je n'en connais pas le contenu, mais les principes doivent être sensiblement les mêmes sur le reste.

Re: Création panier avec suppression article

par brother » 16 sept. 2011, 14:41

Bonjour Cyrano,

Je vois que tu travail tard.
Ton fichier commence en utilisant des variable qui n'existent pas, donc le problème doit être résolu et donc... Est-ce que tu sais à quoi je fais référence ou pas du tout ?
Hummm :| , je crois que j'aurais du poster dans, hyper débutant !
Effectivement je ne vois du tout à quoi du fait référence....parce que je suis... :x

Ceci dit, depuis ce matin j'ai tenté de supprimer les ($_POST) en tête de ma page... Ensuite les ($_SESSION).... de réinventer et remplacer etc, mais rien ne va.
Je travail sur les travaux personnels TP n°3 Commerce en ligne, du livre PHP5 de chez Eyrolles (Jean Engels) ..... :lol:
Sachant qu'il n'avait pas prévu une corbeille pour la suppression des articles, je me suis lancé 8-| .

Merci de ton aide.

Re: Création panier avec suppression article

par Cyrano » 15 sept. 2011, 23:04

Est-ce que tu as lu ceci de mon précédent message ou juste la fin ?
Le message « undefined index etc..» fait référence à un tableau dont tu tentes d'utiliser la valeur d'un index inexistant.

Là, c'est soit l'index de $_SESSION soit celui de $_POST qui n'existe pas. Je serais tenté de penser qu'il s'agit du second et que l'erreur se produit lors du chargement de la page, et comme tu n'as rien posté à ce moment là, la super-globale $_POST est vide.
Ton fichier commence en utilisant des variable qui n'existent pas, donc le problème doit être résolu et donc... Est-ce que tu sais à quoi je fais référence ou pas du tout ?

Re: Création panier avec suppression article

par brother » 15 sept. 2011, 21:37

Bonjour,
J'ai retapé le code et j'ai toujours la même erreur :(
<?php
session_start(); 
//Recuperation des saisies
$id_article=$_SESSION["id_article"]."//".$_POST["id_article"];
$_SESSION["id_article"]=$id_article;
//**********************************
$quantite=$_SESSION["quantite"]."//".$_POST["quantite"];
$_SESSION["quantite"]=$quantite;
//**********************************
$prix_unit=$_SESSION["prix_unit"]."//".$_POST["prix_unit"];
$_SESSION["prix_unit"]=$prix_unit;
//**********************************
$design=$_SESSION["designation"]."//".$_POST["designation"];
$_SESSION['designation']=$design;
unset($_POST);
$_POST=array();
include_once('entete.php');

include_once("connex.inc.php");
?>
<?php
echo <<<CODE_HTML
<h3>
<h3>Votre panier</h3>
<table border="1" >


<tr>
<th>x</th>
<th>Code Article</th>
<th>Désignation</th>
<th>Quantité</th>
<th>Prix unitaire</th>
<th>Prix total</th>
CODE_HTML;
?>

<?php
//Connexion
$idcom=connex("rucheapiculture_gestion","myparam");
//Affichage du panier
$total=0;
$tabid_art=explode("//",$_SESSION["id_article"]);
$tabquantite=explode("//",$_SESSION["quantite"]);
$tabprix_unit=explode("//",$_SESSION["prix_unit"]);
$tabdesign=explode("//",$_SESSION["designation"]);
//***********************************
for($i=0;$i<count($tabid_art);$i++)
{
$requete = "SELECT id_article,designation,prix FROM rucheapiculture_gestion.article WHERE article.id_article='".$tabid_art[$i]."'";
$result=mysql_query($requete,$idcom);
while($tab = mysql_fetch_assoc($result))

{
    $prix = round($tab['prix'] * $tabquantite[$i], 2);
    $sLigne = <<<CODE_HTML
<tr>
   <td> 
 
<a href="delete.php?id={$tab['id_article']}"><img alt="corbeille" style="height:25px; width:20px; border:0px" src="corbeille.jpg"></a>
    </td>
  <td>
            {$tab['id_article']}
  </td>
  <td>
            {$tab['designation']}
   </td>
   <td>
  {$tabquantite[$i]}
 </td>
   <td>
    {$tab['prix']}
      </td>
          <td>
            {$prix}
          </td>
        </tr>

CODE_HTML;
    echo $sLigne;
    $total += $tab['prix'] * $tabquantite[$i];
}
}
echo <<<CODE_HTML
<tr><td colspan="5"><b>Prix total T.T.C</b></td><td style="text-align:right"><b>$total</b></td></tr>
</table>
  
CODE_HTML;
?>
<?php
echo <<<CODE_HTML

<a href="saisieclient.php" onclick="window.location='saisieclient.php'"><button type="button"> Terminer la commande </button></a>
</table>

CODE_HTML;
?>

<?php
include_once('pied.php');
?>
J'appliquerai dorénavant ce style de code, il faut que je m'y mette :priere: :
<<<CODE_HTML   

CODE_HTML;
Toujour les mêmes lignes d'erreurs ! :?
Je ne sais pas quoi faire..

Re: Création panier avec suppression article

par Cyrano » 15 sept. 2011, 09:14

Le message « undefined index etc..» fait référence à un tableau dont tu tentes d'utiliser la valeur d'un index inexistant.

Là, c'est soit l'index de $_SESSION soit celui de $_POST qui n'existe pas. Je serais tenté de penser qu'il s'agit du second et que l'erreur se produit lors du chargement de la page, et comme tu n'as rien posté à ce moment là, la super-globale $_POST est vide.

[Edit] Édité par erreur et en partie supprimé, désolé[/Edit]

Re: Création panier avec suppression article

par brother » 15 sept. 2011, 08:51

#-o ,
C'est fait...
:oops:

Re: Création panier avec suppression article

par Cyrano » 14 sept. 2011, 21:41

Hé, pour du code PHP, utilise donc le bouton PHP au lieu du bouton CODE quand tu poste, on aura une coloration syntaxique et ce sera largement moins pénible à lire.

Édite ton message et change ça s'il te plait, là je suis pas en état de décortiquer ça en faisant le truc moi-même en copiant collant en local.

Re: Création panier avec suppression article

par brother » 14 sept. 2011, 20:57

Bonjour cyrano,
J'ai fait le point et voilà ce que j'ai écrit:
{
echo "<tr><td>","<a href=\"delete.php?id=".$tab['id_article']."\"><img alt=\"corbeille\" style=\"height:25px; width:20px; border:0px\" src=\"corbeille.jpg\"></a>","</td><td>",$tab['id_article'],"</td><td>",$tab['designation'],"</td><td>",$tabquantite[$i],"</td><td>",$tab['prix'],"</td><td> ", round($tab['prix']*$tabquantite[$i],2),"</td></tr>";
$total+=$tab['prix']*$tabquantite[$i];
}
Ca fonctionne à moitiè... c'est à dire que j'ai mes articles et ma corbeille =D>

Mais lorsque je supprime un article j'ai quatre lignes comme celle-ci :
Bien sur celà ne supprime pas l'article pour autant ... :(

Code : Tout sélectionner

Notice: Undefined index: id_article in /web/essai/www/panier.php on line 4 Notice: Undefined index: quantite in /web/essai/www/panier.php on line 8 Notice: Undefined index: prix_unit in /web/essai/www/panier.php on line 11 Notice: Undefined index: designation in /web/essai/www/panier.php on line 14
Correspondant aux lignes 4, 8, 11 et 14 qui sont :
1  <?php
2  session_start();
3  //Recuperation des saisies
4  $id_article=$_SESSION["id_article"]."//".$_POST["id_article"];
5  $_SESSION["id_article"]=$id_article;
6  //**********************************
7  //echo "<br /> ID =", $id_article,"</>";
8  $quantite=$_SESSION["quantite"]."//".$_POST["quantite"];
9  $_SESSION["quantite"]=$quantite;
10 //**********************************
11 $prix_unit=$_SESSION["prix_unit"]."//".$_POST["prix_unit"];
12 $_SESSION["prix_unit"]=$prix_unit;
13//**********************************
14 $design=$_SESSION["designation"]."//".$_POST["designation"];
15 $_SESSION['designation']=$design;
16 unset($_POST);
17 $_POST=array();
18 include_once('entete.htm');
19 include_once("connex.inc.php");
20 ?>
Est-ce encore des problèmes de concaténation et d'alternances ou est-ce mon code du fichier delete.php ?

Merci

Re: Création panier avec suppression article

par Cyrano » 14 sept. 2011, 08:04

Problème de concaténation et d'alternances entre « ' » et « " », du coup il y a des conflits de quotes dans le HTML et dans le PHP.

Pars du HTML en l'écrivant correctement et en utilisant des guillemets au lieu d'apostrophes pour encadrer les valeurs d'attribut; ensuite, insère le comme une chaine de caractère dans ton code PHP mais en oubliant pas que cette chaine devra être encadrée elle-même, soit d'apostrophes (quotes simples) soit de guillemets (doubles quotes) et qu'il faudra en conséquence échapper ces même caractères dans la chaine.

Re: Création panier avec suppression article

par brother » 14 sept. 2011, 07:53

Bonjour macgawel et Cyrano,

Merci de prendre le temps d'étudier mon cas.
Cyrano, mon fichier delete.php vient de ce tuto....merci.
En fait macgawel ça ne fonctionne pas..
Voici le message d'erreur :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/
Qui correspond à la ligne :
echo '<tr><td><a href="delete.php?id='.$tab['id_article'].'"><img alt='corbeille' style='height:25px; width:20px; border:0px' src='corbeille.jpg'></a>";
Et :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web
Si j'écris le code comme ceci :
echo "<tr><td>","<a href=\"'delete.php?' id='.$tab['id_article'].'\">","<img alt=\"corbeille\" style=\"height:25px; width:20px; border:0px\" src=\"corbeille.jpg\"></a>","</td><td>",$tab['id_article'],"</td><td>",$tab['designation'],"</td><td style=\"text-align:center\">",$tabquantite[$i],"</td><td style=\"text-align:right\">",$tab['prix'],"</td><td style=\"text-align:right\"> ", round($tab['prix']*$tabquantite[$i],2),"</td></tr>";
Comment faire ?
Celà provient peut-être du code sur le fichier delete.php que j'ai recopié (peut-être sans réfléchir 8-| ) ?

Merci