begin process at 2012 05 30 22:49:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Erreur sur un array dans une class


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur sur un array dans une class

mercredi 19 août 2009 à 17:26:14 | Erreur sur un array dans une class

zemele

Bonjour,

Je viens d'installer mon site le serveur (dev local sous MAMP), et voilà que ma class ne fonctionne plus... Voici le message d'errer :

"Cannot use object of type Panier as array in ..."

J'ai passé les lignes suivantes dans mon htacces pour le php 5 et la secur :
SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0

Voici mon début de class (c'est du php 4)


Code PHP :

class Panier {
var $basket = array();

function Panier () {

if(!isset($_SESSION['panier'])) $_SESSION['panier'] = array();
$this->basket =& $_SESSION['panier'];

}

function cle($idArticle) {

$res = "non";
foreach ($this->basket as $key => $tab) {
if($tab["idProduit"] == $idArticle) $res = $key;

}

return $res;

}
...
}


Quelqu'un à une idée ?

Merci.

mercredi 19 août 2009 à 17:50:15 | Re : Erreur sur un array dans une class

kohntark

Membre Club

Salut,


"Cannot use object of type Panier as array in ..."



in ... ??? faut deviner ??

Si tu pouvais mettre le code nécessaire à la compréhension et surligner la ligne en erreur ça aiderait bien.
A vu de nez l'erreur est ailleurs.


Cordialement,

Kohntark -

mercredi 19 août 2009 à 17:57:55 | Re : Erreur sur un array dans une class

zemele

Voilà toute la class (j'y ai un peut retravaillé) :

Pour le moment c'est la ligne en rouge, mais en faite c'est partout où j'utilise foreach (for tout court aussi d'ailleurs). Ce qui est après le in c'est juste le nom du fichier php Panier.class.php.

Code PHP :

<?php
//http://www.allhtml.com/articles/detail/523

class Panier {


private $panier = array();

public function __construct () {


if(!isset($_SESSION['panier'])) $_SESSION['panier'] = array();

$this->panier =& $_SESSION['panier'];


}


public function cle($idArticle) {

$res = "non";

foreach ($this->panier as $key => $tab) {

[color=red]if($tab["idProduit"] == $idArticle) $res = $key;[/color]

}

return $res;

}


public function ajoutArticle($array) {

//idProduit
//nom
//Modele
//urlPhoto
//idRub
//rub
//nomQte
//idQte
//qte
//PrixU

if($this->cle($array["idProduit"] != 'non')) $this->supprArticle($array["idProduit"]);

$this->panier[] = $array;

}

public function qteArticle ($id, $qte) {


$this->panier[$this->cle($id)]['qte'] = $qte;

}

public function supprArticle($id) {

//unset ($this->panier[$this->cle($id)]);
foreach ($this->panier as $key => $tab) {

if($tab["idProduit"] == $id) unset($this->panier[$key]);

}


}

public function nbrArticle () {

return count($this->panier);

}

public function totalTTCArticle ($id) {

return $this->panier[$this->cle($id)]['qte'] * $this->panier[$this->cle($id)]['PrixU'];

}

public function totalTTC () {

$total = 0;

foreach ($this->panier as $key => $tab) {

$total = $total + ($tab["PrixU"] * $tab["qte"]);

}

return $total;

}

public function affPanier() {


$list = $this->returnPanier();

if(sizeof($list) == 0) {

return '<p>Votre panier est vide.</p>';

}else{

$x = 0;

$html = '<table>';

foreach($list as $key => $val) {

$prixTot = $val["qte"] * $val["PrixU"];

$classLigne = (($x % 2) == 0) ? 'class="lignPaire"' : 'class="lignImpaire"';

$nom = $val["qte"].'x '.$val["nom"];
$nom .= ($val["modele"] != "") ? ' - '.$val["modele"] : '';
$nom .= ($val["nomQte"] != "") ? '('.$val["nomQte"].')' : '';

$html .= '
<tr '.$classLigne.'>
<td class="nom">'.$nom.'</td>
<td class="prix">'.$prixTot.'¤</td>
</tr>

';

$x++;
}

$html .= '
<tr '.$classLigne.'>
<th class="titreTotal">total</th>
<th class="total">'.$this->totalTTC ().'¤</th>
</tr>

';

$html .= '</table>';

return $html;

}

}


public function returnPanier() {

return $this->panier;

}


public function ferme() {

$this->panier = array();

}

}


?>





mercredi 19 août 2009 à 17:59:19 | Re : Erreur sur un array dans une class

zemele

Ah, y veut pas mettre en rouge, bon c'est la ligne dans le premier foreach (pardon pour le lien en haut, c'est là où je m'en suis inspiré)

jeudi 20 août 2009 à 09:33:28 | Re : Erreur sur un array dans une class

zemele

Réponse acceptée !

Bon après moulte recherche, j'ai trouvé, et ça ne vient pas de ma class.

Petite info que je ne connaissais pas et qui s'adresse au "ajaxeur".

Le résultat d'une page chargée par ajax peut être gardé en cache. Il faut désactiver le cache, soit en ajoutant à l'url un time() (ce qui change systématiquement l'url et donc force l'actualisation) soit pour ceux qui comme moi utilisent mootools mette dans la paramètre du mootools core nocache=true au lieu de false.

Excuse moi kohntark.



Cette discussion est classée dans : php, class, array, panier, basket


Répondre à ce message

Sujets en rapport avec ce message

XML/XSLT dynamique [ par JoJo738 ] Bonjour à tous ^^ Cela fait un bail que je ne suis pas venu sur le forum :p Alors un petit coucou à tout ceux que je connais ;) Sinon, je suis là po probleme d'array php [ par draak3 ] salut à tous voila j'expose mon petit probleme qui doit doit etre 1 cas d'ecole pour vous: je construit 1 panier mon probleme se porte sur la quantite Problème simple de tableau (enfin je pense) [ par wiz4rd ] Bonjour, j'ai un soucis quand j'utilise la fonction [url=http://www.manuelphp.com/php/function.array-multisort.php]array_multisort()[/url]: Voici le TABLEAU PHP [ par daris ] Bonjour,J'ai un tableau qui se présente comme ci dessous.array{    [HUMIDITE] => Array        {            [Humidité] => Array                {        parallel port connection [ par analistadoamor ] Beg your pardon by my very poor english.I am  from Brasil and use PHP Version 5.2.5  when tried use the 'php_iol.dll' it do not operate and i receive Problème héritage PHP5 [ par gonZoo2 ] J'ai rencontré un problème donc car je souhaite créer des classes à l'image du langage Java   Voici donc les classes et le code que j'ai réalisé : php [ par soumboula ] bjr, j'ai un problème avec la commande mysql_fetch_array, je pense que je la commande est juste mai dans l'excecution de la page web, un message est r convertir <TABLE> HTML en Array PHP [ par AFPA2003 ] Bonjour,je sais convertir une variable PHP simple tableau ou multi-dimention en autant de code HTML ... imbriqué que nécessaire.Cependant le contra Gestion de panier en php [ par boninou ] Bonjour ! Je dois gérer un panier en php à l'aide de 2 variables de session : - un tableau pour la reference du produit - un tableau pour la qté lor Problème codage php [ par schpice ] Voila j'ai effectué un code en php mais celui-ci ne marche pas et je ne vois pas pouquoi, donc je viens demander de l'aide si des fois qq1 voit mes er


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales