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?
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:
[php]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 />";
}
}
};[/php]
Pourquoi est il impossible de faire un "echo $classe->body" dans le fichier où j'instancie mon objet? Avez vous une idée?