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

  FORUM HardWare.fr
  Programmation
  PHP

  probleme avec un panier pour un site e commerce

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec un panier pour un site e commerce

n°2281857
joe0703
Posté le 21-05-2016 à 15:46:46  profilanswer
 

bonjour,
je poste ce topic car je suis actuellement dans une impasse.  
Je suis entrain de crée un site de e-commerce (je precise pour un devoir comme cela c'est dit ).
Or j'ai actuellement un soucis avec mon panier.
J'ai crée celui-ci  
 

Code :
  1. <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE SCRIPT
  2. header('Content-type:text/html; charset=UTF-8'); // encodage UTF-8
  3. // --------------------------------------
  4. // protection page membre
  5. // --------------------------------------
  6. // si session vide = PAS connecté
  7. if( empty($_SESSION['user']['login']) )
  8.  {
  9.   // on redirige
  10.   header('location:../elements_inchangeables/connexion/connexion.php'); // OU redirection vers le formualire de CONNEXION !
  11.   exit;
  12.  }
  13. ?>
  14. <!------------------------------------------------------------------------------------------------------------------------------------>
  15. <!-- Déclaration du type de document -->
  16. <!------------------------------------------------------------------------------------------------------------------------------------>
  17.   <!DOCTYPE HTML>
  18.   <html>
  19.    <head>
  20.     <title>selection_jeux</title>
  21.    </head>
  22. <!------------------------------------------------------------------------------------------------------------------------------------>
  23.    <!-- debut du contenu de la partie sombre -->
  24. <!------------------------------------------------------------------------------------------------------------------------------------>
  25.        <?php
  26. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  27.      // <!-- on verifie que les info est etait transmissent -->
  28. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  29.         if
  30.          (
  31.           !empty($_POST['id'])
  32.          )
  33.          {
  34. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  35.        //<!-- si oui, on les renomment -->
  36. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  37.           $id_jeu_select= $_POST['id'];
  38.           $dossier=$_POST['dossier'];
  39.            echo
  40.             $dossier
  41.             ;
  42.           $dossier='jeux_d_aventures';
  43. //<!------------------------------------------------------------------------------------------------------------------------------------>
  44.     // Récupération des informations du fichier blocnote (fichier txt).
  45. //<!------------------------------------------------------------------------------------------------------------------------------------>
  46.           //$fileHandle = fopen($dossier, "r+" );  
  47.           $fileHandle = fopen("../../../txt/genre/".$dossier.".txt", "r+" );     
  48. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  49.      //  <!-- Ouverture du fichier "jeux_d_aventures.txt"  
  50. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  51.           if ($fileHandle)
  52.            {
  53.             ?>
  54.             <form name="selection" id="achat" action="achat_jeux.php" method="post" enctype="multipart/form-data">
  55.              <table width="100%"style="color=#FFFFFF">
  56.               <thead>
  57.                <tr style="height: 16px" align="center">
  58.                 <td>
  59.                  <font class="font_p" color="#5d8eb3">
  60.                   <b>
  61.                    image
  62.                   </b>
  63.                  </font>
  64.                 </td>
  65.                 <td>
  66.                  <font class="font_p" color="#5d8eb3">
  67.                   <b>
  68.                    nom_du_jeu
  69.                   </b>
  70.                  </font>
  71.                 </td>
  72.                 <td>
  73.                  <font class="font_p" color="#5d8eb3">
  74.                   <b>
  75.                    prix
  76.                   </b>
  77.                  </font>
  78.                 </td>
  79.                 <td >
  80.                  <font class="font_p" color="#5d8eb3">
  81.                   <b>
  82.                    confirmer achat
  83.                   </b>
  84.                  </font>
  85.                 </td>
  86.                </tr>
  87.               </thead>
  88.             <?php
  89. //<!------------------------------------------------------------------------------------------------------------------------------------>
  90.             // Lecture des lignes du fichier, une par une.
  91. //<!------------------------------------------------------------------------------------------------------------------------------------>
  92.             while (($buffer = fgets($fileHandle, 4096)) !== false)
  93.              {
  94. //<!------------------------------------------------------------------------------------------------------------------------------------>
  95.               // Lecture des lignes du fichier, une par une. -->
  96. //<!------------------------------------------------------------------------------------------------------------------------------------>
  97.               list(
  98.                $id,
  99.                $nom,
  100.                $date_sortie ,
  101.                $nom_image ,
  102.                $choix ,
  103.                $prix ,
  104.                $quantite )
  105.                = explode('|', $buffer);
  106.           //<!------------------------------------------------------------------------------------------------------------------------------------>  
  107.               // Séparation des données de la ligne en cours en fonction du caractère "|". -->
  108.           //<!------------------------------------------------------------------------------------------------------------------------------------>  
  109.              if (in_array($id,$id_jeu_select))
  110.               {
  111.                $total[]=$prix;
  112. //<!------------------------------------------------------------------------------------------------------------------------------------>
  113. //<!-- on affiche les infos des jeux dans chaque ligne du tableau-->
  114. //<!------------------------------------------------------------------------------------------------------------------------------------>
  115.                ?>
  116.                <tbody>
  117.                  <tr style="height: 16px" align="center">
  118.                   <td>
  119.                     <img src="<?php echo $nom_image; ?>">
  120.                   </td>
  121.                   <td>
  122.                    <?php
  123.                     echo
  124.                       "<FONT color='black'>".$nom. "</FONT>"
  125.                     ;
  126.                    ?>
  127.                   </td>
  128.                   <td>
  129.                    <?php
  130.                     echo
  131.                       "<FONT color='black'>".$prix."€". "</FONT>"
  132.                     ;
  133.                    ?>
  134.                   </td>
  135.                   <td>
  136.                    <?php
  137.                     echo
  138.                      "<input type='checkbox' name='id[]' value='".$id."'>"
  139.                     ;
  140.                    ?>
  141.                   </td>
  142.                  </tr>
  143.                 </tbody>
  144.                    <?php
  145.                }
  146.              }
  147. //<!------------------------------------------------------------------------------------------------------------------------------------>
  148.          // on incrémente l'index
  149. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  150.             fclose($fileHandle);
  151. //<!------------------------------------------------------------------------------------------------------------------------------------>
  152.     // fermeture du fichier -->
  153. //<!------------------------------------------------------------------------------------------------------------------------------------>
  154.            }
  155.             ?>
  156.             <tfoot>
  157.              <tr style="height: 16px" align="center">
  158.               <td colspan=3>
  159.               </td>
  160.               <td>
  161.                <font class="font_p" color="#5d8eb3">
  162.                 <b>
  163.                  total
  164.                 </b>
  165.                </font>
  166.               </td>
  167.              </tr>
  168.              <tr style="height: 16px" align="center">
  169.               <td colspan=3>
  170.                <input type="submit" value="confirmer" name="select"/ onClick="valider()">
  171.               </td>
  172.               <td>
  173.                <?php
  174.                   echo
  175.                    array_sum($total) . "€\n"
  176.                   ;
  177.                ?>
  178.               </td>
  179.              </tr>
  180.             </tfoot>
  181.            </table>
  182.            <?php
  183.          }
  184.         else
  185.           {
  186. //<!------------------------------------------------------------------------------------------------------------------------------------>
  187.        //<!-- si il manque des variables on indique qu'il y a un probleme  -->
  188. //<!------------------------------------------------------------------------------------------------------------------------------------>          
  189.           echo
  190.            '
  191.             <TABLE BORDER="0" width= 80% align="center">
  192.              <tbody>
  193.               <tr align="center" width="1300">
  194.                <td colspan="2" >
  195.                 <div>
  196.                  <FONT color="black">
  197.                   votre panier est vide
  198.                  </FONT>
  199.                  </br>
  200.                 </div>
  201.                 <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  202.                </td>
  203.               </tr>
  204.              </tbody>
  205.             </TABLE>
  206.            ';
  207.          }
  208.        ?>
  209. <!------------------------------------------------------------------------------------------------------------------------------------>
  210.    <!-- fin du contenu de la partie sombre -->
  211. <!------------------------------------------------------------------------------------------------------------------------------------>
  212.      </div>
  213.   </html>


 
qui renvoie a une page qui doit logiquement:
         _1)modifier la quantité de mes produits achetés
         _2) qui doit enregistrer dans un fichier.txt l'id de l'utilisateur et l'id de mon produit
 
pour ce faire j'ai codé ce code
 

Code :
  1. <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE SCRIPT
  2. header('Content-type:text/html; charset=UTF-8'); // encodage UTF-8
  3. // --------------------------------------
  4. // protection page membre
  5. // --------------------------------------
  6. // si session vide = PAS connecté
  7. if( empty($_SESSION['user']['login']) )
  8.  {
  9.   // on redirige
  10.   header('location:../elements_inchangeables/connexion/connexion.php'); // OU redirection vers le formualire de CONNEXION !
  11.   exit;
  12.  }
  13. ?>
  14. <!------------------------------------------------------------------------------------------------------------------------------------>
  15. <!-- Déclaration du type de document -->
  16. <!------------------------------------------------------------------------------------------------------------------------------------>
  17.   <!DOCTYPE HTML>
  18.   <html>
  19.    <head>
  20.     <title>selection_jeux</title>
  21.    </head>
  22. <!------------------------------------------------------------------------------------------------------------------------------------>
  23.    <!-- debut du contenu de la partie sombre -->
  24. <!------------------------------------------------------------------------------------------------------------------------------------>
  25.        <?php
  26. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  27.      // <!-- on verifie que les info est etait transmissent -->
  28. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  29.         if
  30.          (
  31.           !empty($_POST['id'])
  32.          )
  33.          {
  34. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  35.        //<!-- si oui, on les renomment -->
  36. //<!------------------------------------------------------------------------------------------------------------------------------------>          
  37.           $id_membre= $_SESSION['user']['id'];
  38.           $id_jeu_select =$_POST['id'];
  39.           $dossier=$_POST['dossier'];
  40.           for ($i=0;$i<count($_POST['id']);$i++)
  41.            {
  42.             $id_jeu= $_POST['id'][$i];
  43.             $achat = fopen("../../../txt/genre/achat/".$dossier.".txt", "r+" );
  44.             file_put_contents("../../../txt/Fichier_user.txt",
  45.                  $id_jeu.'|'.
  46.                  $id_membre."\r\n",FILE_APPEND);
  47.            }
  48.           $fileHandle = fopen("../../../txt/genre/".$dossier.".txt", "r+" );
  49. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  50.      //  <!-- Ouverture du fichier "jeux_d_aventures.txt"  
  51. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  52.           if ($fileHandle)
  53.            {
  54.             // --------------
  55.             // Initialisation
  56.             $les_lignes = '';
  57.             $lignes_array = array();
  58.             $saut = "\r\n"; // saut de ligne
  59.             // --------------
  60.             // on parcourt les lignes du fichier txt
  61.             while(!feof($fileHandle))
  62.             {
  63.              $ligne = fgets($fileHandle); // $ligne -> chaine
  64.              $ligne = trim( $ligne ); // on supprime le saut de ligne à la fin
  65.              $cette_ligne = explode('|', $ligne); // $cette_ligne -> array
  66.              // --------------
  67. //<!------------------------------------------------------------------------------------------------------------------------------------>  
  68.               if( $id_jeu_select == $cette_ligne[0] ) // si on est sur la bonne ligne (id_user OK)
  69.                {
  70.                 $new_ligne= array();
  71.                 $new_ligne[0]= $cette_ligne[0];
  72.                 $new_ligne[1]= $cette_ligne[1];
  73.                 $new_ligne[2]= $cette_ligne[2];
  74.                 $new_ligne[3]= $cette_ligne[3];
  75.                 $new_ligne[4]= $cette_ligne[4];
  76.                 $new_ligne[5]= $cette_ligne[5];
  77.                 $new_ligne[6]= $cette_ligne[6] - 1;
  78.                 $lignes_array[] = implode( '|', $new_ligne ); // remplacement des données de cette ligne    
  79.                 $fileHandle = fopen("../../../txt/genre/achat/Fichier_achat.txt", "r+" );
  80.                 $id_utilisateur=$_SESSION['user']['id'];
  81.                 $achat = fopen("../../../txt/genre/achat/genre/".$dossier.".txt", "r+" );
  82.                 file_put_contents("../../../txt/genre/achat/genre/".$dossier.".txt",
  83.                      $id_utilisateur.'|'.
  84.                      $cette_ligne[0] .'|'.
  85.                      FILE_APPEND);
  86.                 exit();
  87.                 }
  88.                else
  89.                 {
  90.                  $lignes_array[] = $ligne ; // on conserve la ligne
  91.                 }
  92.               }
  93.               // --------------
  94.               $les_lignes = implode ( $saut, $lignes_array ); // on regroupe toutes les lignes (en ajoutant les sauts de ligne)
  95.               // --------------
  96.             }
  97.            fclose($fileHandle);
  98.            $fileHandle = fopen("../../../txt/genre/".$dossier.".txt", 'w+');
  99.            fputs($fileHandle, $les_lignes); // on écrit toutes les lignes dans le fichier txt    
  100.            fclose($fileHandle);
  101.            echo
  102.             '
  103.              <td colspan="2" >
  104.                <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  105.              </td>
  106.             ';
  107.            exit;
  108.          }
  109.         else
  110.           {
  111. //<!------------------------------------------------------------------------------------------------------------------------------------>
  112.        //<!-- si il manque des variables on indique qu'il y a un probleme  -->
  113. //<!------------------------------------------------------------------------------------------------------------------------------------>          
  114.           echo
  115.            '
  116.             <TABLE BORDER="0" width= 80% align="center">
  117.              <tbody>
  118.               <tr align="center" width="1300">
  119.                <td colspan="2" >
  120.                 <div>
  121.                  <FONT color="black">
  122.                   votre panier est vide
  123.                  </FONT>
  124.                  </br>
  125.                 </div>
  126.                 <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  127.                </td>
  128.               </tr>
  129.              </tbody>
  130.             </TABLE>
  131.            ';
  132.          }
  133.        ?>
  134. <!------------------------------------------------------------------------------------------------------------------------------------>
  135.    <!-- fin du contenu de la partie sombre -->
  136. <!------------------------------------------------------------------------------------------------------------------------------------>
  137.      </div>
  138.   </html>


 
le soucis, étant que le 1er code ne change rien du tout ( la quantité ne diminue pas ).
si quelqu'un aurait un conseil , une solution , une direction pour que je trouve une solution a me conseillé je lui en serais gréé.
Merci d'avance


Message édité par joe0703 le 21-05-2016 à 17:27:18
mood
Publicité
Posté le 21-05-2016 à 15:46:46  profilanswer
 

n°2281866
bistouille
Posté le 21-05-2016 à 19:45:29  profilanswer
 

Et donc ton code bloque sur quelle partie ?
Car comme ça, vu le fouillis de ton code, pas facile de suivre.
 
Si tu ne sais pas, suffit d'utiliser de simples echo/print_r pour pister chaque déroulement d'étape, cela est suffisant pour déboguer un code.
Aussi mettre l'error_reporting au max pour que php te remonte toutes les erreurs et warning rencontrés  
 


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281872
joe0703
Posté le 22-05-2016 à 01:40:22  profilanswer
 

c'est dans cette partie du code que j ai un soucis ,  

Code :
  1. while(!feof($fileHandle))
  2.             {
  3.              $ligne = fgets($fileHandle); // $ligne -> chaine
  4.              $ligne = trim( $ligne ); // on supprime le saut de ligne à la fin
  5.              $cette_ligne = explode('|', $ligne); // $cette_ligne -> array
  6.              // --------------
  7. //<!------------------------------------------------------------------------------------------------------------------------------------>   
  8.               if( $id_jeu_select == $cette_ligne[0] ) // si on est sur la bonne ligne (id_user OK)
  9.                {
  10.                 $new_ligne= array();
  11.                 $new_ligne[0]= $cette_ligne[0];
  12.                 $new_ligne[1]= $cette_ligne[1];
  13.                 $new_ligne[2]= $cette_ligne[2];
  14.                 $new_ligne[3]= $cette_ligne[3];
  15.                 $new_ligne[4]= $cette_ligne[4];
  16.                 $new_ligne[5]= $cette_ligne[5];
  17.                 $new_ligne[6]= $cette_ligne[6] - 1;
  18.                 $lignes_array[] = implode( '|', $new_ligne ); // remplacement des données de cette ligne     
  19.                 $fileHandle = fopen("../../../txt/genre/achat/Fichier_achat.txt", "r+" );
  20.                 $id_utilisateur=$_SESSION['user']['id'];
  21.                 $achat = fopen("../../../txt/genre/achat/genre/".$dossier.".txt", "r+" );
  22.                 file_put_contents("../../../txt/genre/achat/genre/".$dossier.".txt",
  23.                      $id_utilisateur.'|'.
  24.                      $cette_ligne[0] .'|'.
  25.                      FILE_APPEND);
  26.                 exit();


 
quand je demande  

Code :
  1. $new_ligne[6]= $cette_ligne[6] - 1;


cela ne me fait pas le moins 1 , cela recopie la meme valeur

n°2281873
bistouille
Posté le 22-05-2016 à 09:56:06  profilanswer
 

Ok, a-priori, c'est parce que $new_ligne[6] est une chaine, et que tu y ajoutes un entier.
Donc faut que tu transtypes ta chaîne en entier avant d'opérer dessus.
 
Soit tu le fais directement sur l'array (avec array_map je crois), soit sur la $new_ligne[6] en mettant (int)$new_ligne[6]
Mais comme je t'ai signalé, définis toujours l'error_reporting au max au début de chacun de tes codes.
 

Code :
  1. error_reporting(E_ALL | E_STRICT);


 
Edit, rien à voir avec le problème mais :

Spoiler :

<!-- on verifie que les info est etait transmissent -->  
 
Corrige ces vilaines fautes  :o


Message édité par bistouille le 22-05-2016 à 09:58:47

---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281876
bistouille
Posté le 22-05-2016 à 10:29:20  profilanswer
 

Bon, j'ai dit de la merde, php cast automatiquement la variable en entier, je ne m'en rappelais plus  :o  
 

Code :
  1. php > $a = '10';
  2. php > $b = $a + 4;
  3. php > echo $b;
  4. 14


 
Donc, je sais pas, faudrait voir si tu entres dans ta condition  $id_jeu_select == $cette_ligne[0]  


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281881
joe0703
Posté le 22-05-2016 à 12:48:39  profilanswer
 

le soucis vient en effet du fait que je n'entre pas dans la boucle "if" mais je comprend pas pourquoi vu que  
$id_jeu_select  = 1;  
et que  
$cette_ligne[0] comprend un 1 a cette position sur la 1er de mes ligne :/  
tu sais a quoi cela pourrais être du ?  
 
voici mon fichier texte
 
1|skyrim|2016-05-18|../../photo/try.jpg|1|18|10|
2|druss|6884-12-04|../../photo/skyrim.jpg|2|16|16|

n°2281883
bistouille
Posté le 22-05-2016 à 13:19:19  profilanswer
 

$id_jeu_select est un array puisque cette variable est issue de ton formulaire html.
 
Donc forcément tu n'entres pas dans ta condition.


Message édité par bistouille le 22-05-2016 à 13:20:28

---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281894
joe0703
Posté le 22-05-2016 à 14:40:46  profilanswer
 

=.=" élémentaire mon cher Watson
bon j'ai plus ou moins réussi avec foreach
 

Code :
  1. if
  2.          (
  3.           !empty($_POST['id'])
  4.          )
  5.          {
  6. /
  7.           $id_jeu_select =$_POST['id'];
  8.           $dossier=$_POST['dossier'];
  9.           $type=$_POST['type'];
  10.           $fileHandle = fopen("../../../txt/genre/".$dossier.".txt", "r+" );
  11.           if ($fileHandle)
  12.            {
  13.             // --------------
  14.             // Initialisation
  15.             $les_lignes = '';
  16.             $lignes_array = array();
  17.             $saut = "\r\n"; // saut de ligne
  18.             // --------------
  19.             // on parcourt les lignes du fichier txt
  20.             while(!feof($fileHandle))
  21.             {
  22.              $ligne = fgets($fileHandle); // $ligne -> chaine
  23.              $ligne = trim( $ligne ); // on supprime le saut de ligne à la fin
  24.              $cette_ligne = explode('|', $ligne); // $cette_ligne -> array
  25.              // --------------
  26.              foreach ($id_jeu_select as $value)
  27.               {
  28. //<!------------------------------------------------------------------------------------------------------------------------------------>  
  29.                if( $value === $cette_ligne[0] )
  30.                 {
  31.                  echo "dedans";
  32.                  $new_ligne= array();
  33.                  $new_ligne[0]= $cette_ligne[0];
  34.                  $new_ligne[1]= $cette_ligne[1];
  35.                  $new_ligne[2]= $cette_ligne[2];
  36.                  $new_ligne[3]= $cette_ligne[3];
  37.                  $new_ligne[4]= $cette_ligne[4];
  38.                  $new_ligne[5]= $cette_ligne[5];
  39.                  $new_ligne[6]= $cette_ligne[6] - 1;
  40.                  $lignes_array[] = implode( '|', $new_ligne ); // remplacement des données de cette ligne          
  41.                 }
  42.                else
  43.                 {
  44.                   $lignes_array[] = $ligne ; // on conserve la ligne
  45.                 }
  46.               }
  47.              }
  48.              // --------------
  49.              $les_lignes = implode ( $saut, $lignes_array ); // on regroupe toutes les lignes (en ajoutant les sauts de ligne)
  50.              // --------------
  51.             }
  52.            fclose($fileHandle);
  53.            $fileHandle = fopen("../../../txt/".$type."/".$dossier.".txt", 'w+');
  54.            fputs($fileHandle, $les_lignes); // on écrit toutes les lignes dans le fichier txt    
  55.            fclose($fileHandle);
  56.            echo
  57.             '
  58.              <td colspan="2" >
  59.                <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  60.              </td>
  61.             ';
  62.            exit;
  63.          }
  64.   </html>


 
le soucis c'est que cela marche si ma checkbox ne contient qu'une valeur ( le fichier txt ne vois que la ligne en question modifier et le fichier est ok)
par contre si ma checkbox contient deux variable, elles sont toutes les deux modifiés MAIS elles sont aussi dupliquer dans mon fichier txt :/ ce qui fait planter mon code de lecture si je veux recommencer un achat :/


Message édité par joe0703 le 22-05-2016 à 15:17:46
n°2281905
bistouille
Posté le 22-05-2016 à 15:16:40  profilanswer
 

Pas nécessairement.
 
php possède toute une panoplie de fonctions pour travailler avec des tableaux.
 
Dans ton cas,  in_array serait judicieux.
 
 


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281906
joe0703
Posté le 22-05-2016 à 15:18:45  profilanswer
 

je sais pas si tu a vu , j'ai modifier mon message entre temps, car j'ai tester avec foreach ^^  
donc tu conseillerais que je modifié  mon foreach par un in_array ? cela corrigerait il la nouvelle erreur a ton avis ?

mood
Publicité
Posté le 22-05-2016 à 15:18:45  profilanswer
 

n°2281907
bistouille
Posté le 22-05-2016 à 15:24:11  profilanswer
 

Oui, j'ai vu  :D  
 
Oui in_array fait exactement ce que ton foreach et ton test d'égalité font.
 

Code :
  1. if( in_array($valeur, $tableau) )
  2. {
  3.     // code
  4. }
  5. else
  6. {
  7.     // code
  8. }


---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281908
joe0703
Posté le 22-05-2016 à 15:30:59  profilanswer
 

dnc je suprime le foreach et le if  
et je met le in_array a la place ?  
et donc ton $valeur = $id_jeux_selectionner
et $tableau= $cette_ligne  
 
c'est cela ?
 
a priorie non ^^"  
 

Citation :


Warning: in_array() expects parameter 2 to be array, string given in C:\xampp\htdocs\projet-web-dynamique-soulier-joris\PHP\site_connection_user\achat\achat_jeux.php on line 69
 
Warning: in_array() expects parameter 2 to be array, string given in C:\xampp\htdocs\projet-web-dynamique-soulier-joris\PHP\site_connection_user\achat\achat_jeux.php on line 69
 
Warning: in_array() expects parameter 2 to be array, string given in C:\xampp\htdocs\projet-web-dynamique-soulier-joris\PHP\site_connection_user\achat\achat_jeux.php on line 69


Message édité par joe0703 le 22-05-2016 à 15:32:17
n°2281909
joe0703
Posté le 22-05-2016 à 15:42:09  profilanswer
 

c'est bon j'ai reussi juste avec foreach , suffiser de le deplacer  
 

Code :
  1. <?php if(session_id()=='') { session_start(); } // TOUJOURS EN HAUT DE SCRIPT
  2. header('Content-type:text/html; charset=UTF-8'); // encodage UTF-8
  3. // --------------------------------------
  4. // protection page membre
  5. // --------------------------------------
  6. // si session vide = PAS connecté
  7. if( empty($_SESSION['user']['login']) )
  8.  {
  9.   // on redirige
  10.   header('location:../elements_inchangeables/connexion/connexion.php'); // OU redirection vers le formualire de CONNEXION !
  11.   exit;
  12.  }
  13. ?>
  14. <!------------------------------------------------------------------------------------------------------------------------------------>
  15. <!-- Déclaration du type de document -->
  16. <!------------------------------------------------------------------------------------------------------------------------------------>
  17.   <!DOCTYPE HTML>
  18.   <html>
  19.    <head>
  20.     <title>selection_jeux</title>
  21.    </head>
  22. <!------------------------------------------------------------------------------------------------------------------------------------>
  23.    <!-- debut du contenu de la partie sombre -->
  24. <!------------------------------------------------------------------------------------------------------------------------------------>
  25.        <?php
  26. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  27.      // <!-- on verifie que les info est etait transmissent -->
  28. //<!------------------------------------------------------------------------------------------------------------------------------------>      
  29.         if
  30.          (
  31.           !empty($_POST['id'])
  32.          )
  33.          {
  34. //<!------------------------------------------------------------------------------------------------------------------------------------>        
  35.        //<!-- si oui, on les renomment -->
  36. //<!------------------------------------------------------------------------------------------------------------------------------------>          
  37.           $id_membre= $_SESSION['user']['id'];
  38.           $id_jeu_select =$_POST['id'];
  39.           $dossier=$_POST['dossier'];
  40.           $type=$_POST['type'];
  41.           for ($i=0;$i<count($_POST['id']);$i++)
  42.            {
  43.             $id_jeu= $_POST['id'][$i];
  44.             echo $id_jeu ."</br>" ;
  45.             $achat = fopen("../../../txt/".$type."/achat/".$dossier.".txt", "r+" );
  46.             file_put_contents("../../../txt/".$type."/achat/".$dossier.".txt",
  47.                  $id_jeu.'|'.
  48.                  $id_membre."\r\n",FILE_APPEND);
  49.            }
  50.           foreach ($id_jeu_select as $value)
  51.            {
  52.             $fileHandle = fopen("../../../txt/genre/".$dossier.".txt", "r+" );
  53.             if ($fileHandle)
  54.              {
  55.               // --------------
  56.               // Initialisation
  57.               $les_lignes = '';
  58.               $lignes_array = array();
  59.               $saut = "\r\n"; // saut de ligne
  60.               // --------------
  61.               // on parcourt les lignes du fichier txt
  62.               while(!feof($fileHandle))
  63.                {
  64.                 $ligne = fgets($fileHandle); // $ligne -> chaine
  65.                 $ligne = trim( $ligne ); // on supprime le saut de ligne à la fin
  66.                 $cette_ligne = explode('|', $ligne); // $cette_ligne -> array
  67.                 // --------------
  68.                   if( $value === $cette_ligne[0] )
  69.                    {
  70.                      echo "dedans";
  71.                      $new_ligne= array();
  72.                      $new_ligne[0]= $cette_ligne[0];
  73.                      $new_ligne[1]= $cette_ligne[1];
  74.                      $new_ligne[2]= $cette_ligne[2];
  75.                      $new_ligne[3]= $cette_ligne[3];
  76.                      $new_ligne[4]= $cette_ligne[4];
  77.                      $new_ligne[5]= $cette_ligne[5];
  78.                      $new_ligne[6]= $cette_ligne[6] - 1;
  79.                      $lignes_array[] = implode( '|', $new_ligne ); // remplacement des données de cette ligne           
  80.                    }
  81.                   else
  82.                    {
  83.                     $lignes_array[] = $ligne ; // on conserve la ligne
  84.                    }
  85.                 }
  86.                // --------------
  87.               $les_lignes = implode ( $saut, $lignes_array ); // on regroupe toutes les lignes (en ajoutant les sauts de ligne)
  88.               // --------------
  89.              }
  90.             fclose($fileHandle);
  91.             $fileHandle = fopen("../../../txt/".$type."/".$dossier.".txt", 'w+');
  92.             fputs($fileHandle, $les_lignes); // on écrit toutes les lignes dans le fichier txt     
  93.             fclose($fileHandle);
  94.            }
  95.           echo
  96.            '
  97.             <td colspan="2" >
  98.              <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  99.             </td>
  100.            ';
  101.           exit;
  102.          }
  103.         else
  104.          {
  105. //<!------------------------------------------------------------------------------------------------------------------------------------>
  106.        //<!-- si il manque des variables on indique qu'il y a un probleme  -->
  107. //<!------------------------------------------------------------------------------------------------------------------------------------>          
  108.           echo
  109.            '
  110.             <TABLE BORDER="0" width= 80% align="center">
  111.              <tbody>
  112.               <tr align="center" width="1300">
  113.                <td colspan="2" >
  114.                 <div>
  115.                  <FONT color="black">
  116.                   votre panier est vide
  117.                  </FONT>
  118.                  </br>
  119.                 </div>
  120.                 <input type="button" name="Accueil" value="Fermer" onClick="window.close()"/>
  121.                </td>
  122.               </tr>
  123.              </tbody>
  124.             </TABLE>
  125.            ';
  126.          }
  127.        ?>
  128. <!------------------------------------------------------------------------------------------------------------------------------------>
  129.    <!-- fin du contenu de la partie sombre -->
  130. <!------------------------------------------------------------------------------------------------------------------------------------>
  131.      </div>
  132.   </html>


 
merci de ton aide

n°2281910
bistouille
Posté le 22-05-2016 à 15:53:10  profilanswer
 

Y'a moyen de simplifier tout ça.
 
Exemple :
 

Code :
  1. $nouvelles_donnees = '';
  2. while(!feof($fileHandle))
  3. {
  4.     $ligne = fgets($fileHandle);
  5.     $ligne = trim( $ligne );
  6.     $tableau = explode('|', $ligne);
  7.     if( in_array($tableau[0], $id_jeu_select) )
  8.     {
  9.         $tableau[6]--;
  10.         $ligne = implode('|', $tableau);
  11.     }
  12.     $nouvelles_donnees .= $ligne . "\n";
  13. }
  14. // Enregistrement des donnees
  15. file_put_contents('../../../txt/' . $type . '/' . $dossier . '.txt', $nouvelles_donnees);


 
A adapter selon.
 
Un autre conseil, utilise des simples quotes (apostrophes) pour les string, php évalue les chaines de caractères entre guillemets.


Message édité par bistouille le 22-05-2016 à 15:57:42

---------------
On croit souvent avoir vu le fond de la stupidité humaine, et il parfois nécessaire qu'on vous rappelle qu'elle n'a pas de fond.
n°2281939
rufo
Pas me confondre avec Lycos!
Posté le 23-05-2016 à 11:47:32  profilanswer
 

Petites remarques en passant : ton HTML me rappelle ce qu'on faisait avant les années 2000 :pfff:
En vrac : mise en page par tableau, mélange de la forme dans le fond (utilisation de <font> par ex ou lieu de passer par le CSS), javascript intrusif (mis direct dans des balises du HTML)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2281945
joe0703
Posté le 23-05-2016 à 13:09:23  profilanswer
 

^^ que veux tu c est ce que les prof nous apprennent a la fac ^^" et vu que je débute j'ai encor du mal a sortir de mes cours

n°2281949
rufo
Pas me confondre avec Lycos!
Posté le 23-05-2016 à 13:25:41  profilanswer
 

C'est une honte d'enseigner cette façon de "coder" le HTML/CSS/JS de nos jours. :kaola:  
Va sur alsacreations, lis le bouquin de Raphaël Goëtter (l'auteur du site) sur le CSS. Parce que là, j'imagine que la notion de séparation fond/forme est complètement passée à la trappe (je ne parle même pas du design pattern MVC :sarcastic: ), tout comme la sémantique des balises HTML et leur utilité dans l'accessibilité du web aux déficients visuels...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

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

  probleme avec un panier pour un site e commerce

 

Sujets relatifs
Probleme avec l'exportation de mes programmes en C++Problème en Python pour un projet de balle rebondissante
Problème Processing Bataille NavalePYGAME python problème labyrinthe URGENT
Problème ordre d'exécution - Processingprobleme dans le resultats d'un script qui cherche de mots
Problème requête SQL: command not properly endedprojet web. création de site + de son application.
[Vb.Net] Problème téléchargement + décompressionProblème responsiv adobe MUSE
Plus de sujets relatifs à : probleme avec un panier pour un site e commerce


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR