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 :

array_push() : Fatal Error:Only variables can be passed by reference


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut array_push() : Fatal Error:Only variables can be passed by reference
    Bonjour,

    JE suis entrain de concevoir un site de vente en Ligne.
    Et à ce moment même ,je developper le caddie virtuel qui va gerer tous les achats ,de chaque utilisateur, car en effet il faudra etre membre du site pour pouvoir faire des achats , breff :geek:
    Mon souci est le suivant!J'ai une méthode qui permet de d'ajouter un produit au caddie "ajoutpanier($id,$taille)" et qui prend en parametres l'id du produit et sa taille(Les dits produits sont en effet des vetements )!
    donc ya toute une serie de test ..qui pose pas problème, mais le Hic vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //mon tableau de caddie est une variable de session: 
     
             $_SESSION['caddie'] 
           //et comporte également en lui même, pour chaque produit, son id, sa taille, sa quantité
            $_SESSION['caddie']['id']
            $_SESSION['caddie']['taille']
            $_SESSION['caddie']['quantite']
          //DONC au moment de l'ajout d'un produit, je fais ceci
           array_push(  $_SESSION['caddie']['id'],$id);
           array_push(  $_SESSION['caddie']['taille'],$taille);
          array_push(   $_SESSION['caddie']['quantite'],1);
     
    // Et donc au moment du test, c'est à dire lorsqu'un utilisateur ajoute un produit au caddie, BOUM j''ai cette erreur fatal!!! <<Fatal Error:Only variables can be passed by reference>>
    JE ne comprends pas ce qui se passe avec mon arry_push() please help me, j'aimerais bien avancé dans mon site, mais ce petit soucis, me block completement!(enfin bloquer..n'exagerons pas )
    Merci d'avance pour votre aide
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    -JE veux le tonneau plein, et la femme ivre

  2. #2
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut et bienvenue sur le forum
    vous ne pouvez pas utiliser array_push de cette manière.

    j'arrive pas a comprendre comment vous avez structuré votre panier moi je ferai quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    	   $article=array();
    	  $article['id'] = $id;
    	  $article['taille'] = $taille;
    	  $article['quantite'] = 1;
    	  $caddie=array();
    	  array_push($caddie,$article);
    	  $_SESSION['caddie'] = $caddie
     
    	  ?>
    @+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour et Bon dimanche

    Merci pour votre aide, je vais tester ca!
    Mais avant, selon la structure votre array() $_SESSION['caddie'], comment dans ce cas, je pourrai recuperer les differentes valeurs c'est à dire $id,$taille et la quantite dans une boucle..??

    Mercii d'avance!!!

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $caddie = $_SESSION['caddie'];
     
    	foreach ($caddie as $value) {
         echo 'ID : '.$value['id'].' TAILLE : '.$value['taille'].' QTE : '.$value['quantite'].'</br>';
     
    }

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup je vous tiens au courant si ca fonctionne!!!

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je reviens à vous car le bout de code que vous m'avez fourni ne fonctionne pas!!Je vais donc vous donner de plus amples détails à prpos de mon probleme!

    En effet un utilisateur ne peut pas faire d'achats sans etre connecté sur le site, une fois qu'il est connecté, j'initialise son caddie comme suite dans caddie.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['caddie']=array();
    Cette opération n'est exécuté qu'une seule fois lors de sa connexion, pour pouvoir recuperer TOUS ses produits à fin de ses achats.
    Donc voici le bout de code qui ajoute les produits au panier contenu dans le fcihier fonction.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
     
     
    function ajoutPanier($id,$taille)
    {
    <?php
    //$param=array();
    //$param['id']=$id;
    //$param['taille']=$taille;
    //$param['quantite']=1;
     
    $nbProd = count($_SESSION['caddie']);
    $test=0;
     
    //for($i=0;$i<$nbProd;$i++)
    //{
    //if($_SESSION['caddie'][$i]['id']==$id&&$_SESSION['caddie'][$i]['taille']==$taille)
    //{
    $caddie = $_SESSION['caddie'];
    foreach($caddie as $value){
     
    if($value['id']==$id && $value['taille']==$taille){
     
    $value['quantite']= $value['quantite']+1;
    $test=1;
    }
    }
    if($test==0)
    {
     
       	  $article=array();
    	  $article['id'] = $id;
    	  $article['taille'] = $taille;
    	  $article['quantite'] = 1;
    	  $caddie=array();
    	  array_push($caddie,$article);
    	  $_SESSION['caddie'] = $caddie;
     
     
    }
    var_dump($_SESSION['caddie']);
    }
    ?>
    et j'affiche ses produits comme suite dans monpanier.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
     
    <?php
    $caddie = $_SESSION['caddie'];
     foreach($caddie as $value){
    $tailleProd=$value['taille'];																 
    																			$idProd=$value['id'];
     
    																			$tailleProd=$value['taille'];
     
    																			$quantiteProd=$value['quantite']
    ?>
    //blablablablabla......
     
    <tr>
    <td >
    <?php print($tailleProd);?>
    </td>
    </tr>
    De ce fait, lors de l'ajout d'un produit au panier, j'obtiens ce message derreur
    <<Warning: Invalid argument supplied for foreach() in /homez.11/omzolzlh/www/Brice/fonction.php on line 158>> 'est à dire à cette ligne: foreach($caddie as $value){
    De même,les produits ne s'ajoutent pas sucessivement, mais s'écrase les uns sur les autres du coup si l'utilisateur fait 10 achats, lors de l'affichage, il n'y aura que le 10e achat dans $_SESSION['caddie'] et non les 10...

    Auriez vous une solution à cela?
    Merci d'avance!!!

  7. #7
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    le bout de code que je vous est fourni est juste une petite approche pour ce que vous voulez faire, je vais essayer de faire une adaptation pour votre cas plus tard.

    @+.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oi! Merci beaucoup! Jevais cojiter là dessus en attendant!!

Discussions similaires

  1. [2.x] Formulaire: Catchable Fatal Error: Argument 1 passed to
    Par oukacha dans le forum Symfony
    Réponses: 2
    Dernier message: 02/05/2012, 19h36
  2. [ODBC] Fatal error: Cannot redeclare et Notice: Undefined variable:
    Par razily dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/05/2010, 16h33
  3. [PHP 5.2] Only variable can be HEIN ?!
    Par Sladix dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2009, 11h04
  4. [PDO] Fatal error: Cannot pass parameter 2 by reference
    Par Tchupacabra dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/05/2008, 12h37
  5. [EasyPHP] Fatal error: Can't open privilege tables
    Par lou0123 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 13/04/2006, 16h35

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