IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Passer valeur pour panier PHP


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut Passer valeur pour panier PHP
    bonjour,
    voila j ai decider de passer las variable par session, comme ca plus de probleme avec url mais cela me met des message d'erreur:

    Warning: array_search() [function.array-search]: Wrong datatype for second argument in C:\wamp\www\lileauxboutschou\pages\fonctions-panier.php on line 32

    Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\fonctions-panier.php on line 41

    Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\fonctions-panier.php on line 42

    Warning: array_push() [function.array-push]: First argument should be an array in C:\wamp\www\lileauxboutschou\pages\fonctions-panier.php on line 43
    voici donc mes pages:
    panier.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
    include("../include/session.php");
    include_once("fonctions-panier.php");
    session_start();
    $ida=$_SESSION['id'];
    $la=$_SESSION['l'];
    $qa=$_SESSION['q'];
    $pa=$_SESSION['p'];
    if (isset($_GET['action'])){
    	$erreur=false;
    	if(in_array( $_GET['action'],array('ajout', 'suppression')))
    		$action = $_GET['action'];
    	else
    		$erreur=true;
    	$id = intval($ida);
    	$l = preg_replace('#\v#', '', $la);
    	$q = intval($qa);
    	$p = floatval($pa);
    }
    elseif(isset($_POST['action'])){
    	unset($_GET);
    	$erreur=false;
    	if(in_array($_POST['action'],array('ajout', 'suppression')))
    	$action=$_POST['action'];
    	else
    	$erreur=true;
    	$id = floatval($_POST['id']);
    	$l = preg_replace('#\v#', '',$_POST['l']);
    	$p = floatval($_POST['p']);
    	$QteArticle = array();
    	$i=0;
    	foreach ($_POST['QteArticle'] as $contenu){
    		$QteArticle[$i++] = intval($contenu);
    	}
    }
    if ($erreur==false){
    	switch($action){
    		Case "ajout":
    		ajouterArticle($id,$l,$q,$p);
    		break;
    		Case "suppression":
    		supprimerArticle($id);
    		break;
    		/*Case "refresh" :
    		for ($i = 0 ; $i < count($QteArticle) ; $i++){
    			modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
    		}
    		break;*/
    Default:
    		break;
    	}
    }
    $body='<form method="post" action="panier.php">
    <div id="panier">
    <table>
    <tr>
    	<td colspan="4"><h3>Votre panier<h3></td >
    </tr>
    <tr class="libelle">
    	<td>Libell&eacute;</td>
    	<td>Quantit&eacute;</td>
    	<td>Prix Unitaire</td>
    	<td>Action</td>
    </tr>
    ';
    if (creationPanier()){
    	//$nbArticles=count($_SESSION['panier']['libelleProduit']);
    	$nbArticles=count($_SESSION['panier']['idProduit']);
    	echo $_SESSION['panier']['idProduit'];
    		 //session_destroy();  
    	if ($nbArticles <= 0)
    	$body.='<tr><td>Votre panier est vide. </ td></tr>';
    	else{
    		for ($i=0 ;$i < $nbArticles ; $i++){
    			$body.='<tr>';
    			$body.='<td>'.htmlspecialchars($_SESSION['panier']['libelleProduit'][$i]).'</ td>';
    			$body.='<td>'.htmlspecialchars($_SESSION['panier']['qteProduit'][$i]).'</td>';
    			$body.='<td>'.htmlspecialchars($_SESSION['panier']['prixProduit'][$i]).'</td>';
    			$body.='<td><a href="'.htmlspecialchars("panier.php?action=suppression&id=".rawurlencode($_SESSION['panier']['idProduit'][$i])).'">Supprimer</a></td>';
    			$body.='</tr>';
    		}
    		$body.='<tr><td colspan=\"4\">';
    		$body.='<h3>Montant Total de votre commande: '.MontantGlobal();
    		$body.=' euros</h3></td></tr>';
    	}
    }
    $body.='</table></div>
    </form>
    </body>
    </html>';
    include("../include/base.php");
    ?>
    fonctions-panier.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php
    function creationpanier(){
    $ret=false;
    if (isset( $_SESSION['panier']))
     $ret = true;
    else{
      $_SESSION['panier']=array(); 
      $_SESSION['panier']['idProduit'] = array();
      $_SESSION['panier']['libelleProduit'] = array();
      $_SESSION['panier']['qteProduit'] = array();      
      $_SESSION['panier']['prixProduit'] = array();
      $ret=true;
      //print_r($_SESSION);
    	session_destroy(); 
    }
    return $ret;
    }
    function ajouterArticle($idProduit,$libelleProduit,$qteProduit,$prixProduit){
    if (creationpanier()){
    $positionProduit = array_search($idProduit,$_SESSION['panier']['idProduit']);
      if ($positionProduit !== false){
       $_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
      }
      else{
       array_push( $_SESSION['panier']['idProduit'],$idProduit);
       array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
       array_push( $_SESSION['panier']['qteProduit'],$qteProduit); 
       array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
      }
    }
    else
      echo "Un problème est survenu veuillez contacter l'administrateur du site.";
    }
    function supprimerArticle($idProduit){
    if (creationpanier()){
      $tmp=array();
       $tmp['idProduit'] = array();
      $tmp['libelleProduit'] = array();
      $tmp['qteProduit'] = array();      
      $tmp['prixProduit'] = array();
      for($i = 0; $i < count($_SESSION['panier']['idProduit']); $i++) {
       if ($_SESSION['panier']['idProduit'][$i] !== $idProduit){
        array_push( $tmp['idProduit'],$_SESSION['panier']['idProduit'][$i]);
        array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
        array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]); 
        array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
       }
      }
    $_SESSION['panier'] =  $tmp;
    unset($tmp);
    }
    else
      echo "Un problème est survenu veuillez contacter l'administrateur du site.";
    }
    function modifierQTeArticle($idProduit,$qteProduit){
    if (creationpanier()){
      if ($qteProduit > 0){
       $positionProduit = array_search($idProduit,  $_SESSION['panier']['idProduit']);
       if ($positionProduit !== false){
        $_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
       }
      }
      else
       supprimerArticle($idProduit);
    }
    else
      echo "Un problème est survenu veuillez contacter l'administrateur du site.";
    }
    function MontantGlobal(){
    $total=0;
      for($i = 0; $i < count($_SESSION['panier']['idProduit']); $i++){            
       $total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i]; 
      }
    return $total;
    }
    ?>
    et voici le liens que j appelle avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
    session_start();
    include("../include/session.php");
    $id=$_GET['id'];
    $l=$_GET['l'];
    $q=$_GET['q'];
    $p=$_GET['p'];
    $_SESSION['id'] = $id ;
    $_SESSION['l'] = $l ;
    $_SESSION['q'] = $q ;
    $_SESSION['p'] = $p ;
    $body='
    <div id="choix">
    <div id="conteneur_panier" style="float:left;">
    <h4>Choix 1</h4>
    <ul>
    <br /><li><a href="../index.php">Continuer mes achats</a><br /><br /></li>
    </ul>
    </div> 
    <div id="conteneur_panier"style="float:right;margin-bottom:100px;" >
    <h4>Choix 2</h4>
    <ul class="last_element">
    <br /><li><a href="panier.php?action=ajout">Commander maintenant</a><br /><br /></li>
    </ul>
    </div>
    </div>  ';
    //$body.='<a href="choix.php?action=ajout&amp;id='.$pro['produit_id'].'&amp;l='.$sous_categorie['categorie_titre'].'&amp;q=1&amp;p='.$pro['produit_prix'].'"><img src="../images/caddie.gif">Commande terminer</a>';
    include("../include/base.php");
    ?>
    merci de votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    IT Operator
    Inscrit en
    Mars 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : IT Operator
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 43
    Points : 44
    Points
    44
    Par défaut
    Il a l'air d'attendre un array comme premier paramètre et ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['panier']['idProduit']
    , n'a pas l'air de contenir le type de variable qu'il attend.

  3. #3
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Fait un print_r($_SESSION) exit; juste avant la ligne 32 et tu devrais d'apercevoir qu'il y a quelque chose qui ne colle pas
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/07/2011, 12h27
  2. [eCommerce] Demande aide pour modifier 1 ligne dans panier.php
    Par patriciaprovence dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/10/2008, 10h06
  3. [PHP-JS] Passer valeur dans fonction
    Par Tarnyko dans le forum Langage
    Réponses: 8
    Dernier message: 04/02/2008, 15h35
  4. [AJAX] passage de valeur pour une page php depuis un formulaire
    Par Ministar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 22h29
  5. Réponses: 1
    Dernier message: 26/06/2007, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo