Problème d'accès au membre d'une classe

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 : Problème d'accès au membre d'une classe

par jed » 14 juil. 2007, 22:01

La solution? Au lieu de stocker le résultat dans une propriété j'ai fait un return... voilà. :)

par Hywan » 14 juil. 2007, 10:55

Euh d'accord, pas de quoi '^^.

Tu pourrais mettre la solution, si quelqu'un aurait ce même problème :)

par jed » 14 juil. 2007, 10:15

Je n'ai pas de messgae d'erreur, mais c'est bon, j'ai fait plus simple et ça fonctionne, merci quand même. :wink:

par Hywan » 14 juil. 2007, 10:09

Bonjour,

quel message d'erreur as tu ? Si tu veux débugger, utiliser var_dump et pas echo.

Problème d'accès au membre d'une classe

par jed » 14 juil. 2007, 10:07

Bonjour, je développe mon site de téléchargement en php5. J'ai écrit cette classe qui doit me renvoyer le contenu d'un répertoire de mon serveur et un messgae d'erreur le cas échéant. Tout ce qui est visuel est stocké dans la propriété "body". Dans mon fichier principal, pas de problème pour exécuter mes méthodes après instanciation mais impossible d'afficher le contenu du membre body. Pas de message d'erreur. Voici cette classe:
class skin
{
	public $liste;
	public $body;
	private $url;
	
	public function __construct ($url)
	{
		$this->url = $url."/";
	}
	
	public function liste ($categorie)
	{
		$handle = @opendir ($this->url.$categorie);
		if (!$handle){
			$this->body = "Erreur! La catégorie sélectionnée n'existe pas. Cliquez <a href=\"skins.php\">ici</a> pour continuer.";
			exit;
			}
		$i = 0;
		while ($content = readdir ($handle))
		{
			if ($preg = preg_match ("#.txt$#", basename($content))){
				$nom = basename($content);
				$nom = str_replace (".txt", "", $nom);
				$this->liste[$i] = $nom;
				$i++;
				}
		}
		$this->output_liste($i);
	}
	
	private function output_liste($index)
	{
		$this->body = "";
		for ($i=0; $i<$index; $i++)
		{
			$this->body .= "<a href=\"skins.php?file=$this->liste[$i]\">$this->liste[$i]</a><br />";
		}
	}
};
Pourquoi est il impossible de faire un "echo $classe->body" dans le fichier où j'instancie mon objet? Avez vous une idée?