Nouveau sujet Répondre Imprimer Syndication RSS 2.0

[2.0.0] Exécution de code à l'installation d'un module

Volcan
Avatar de Eagle
  • Age : 30 ans
  • Messages : 1043
  • Inscrit : 22 Janvier 2005
  Lien vers ce message 14 Février 2008, 10:05
  1. Type de bug : Bug sur le forum (côté PHP)
  2. Zone du forum affectée : Administration
  3. Priorité du bug : Basse
  4. Description : Lorsqu'on installe un module (par installation automatique), on peut exécuter du code php sous la forum soit de code directement fourni dans le fichier install.xml soit dans un fichier php. Malheureusement si on choisit la premier solution, l'erreur suivante arrive:
    FSB Notice : Undefined property: Xml_element::$file in file D:\ws\fsb2\main\class\class_module.php (418)
    
    Fatal error: Call to a member function getData() on a non-object in D:\ws\fsb2\main\class\class_module.php on line 418
  5. Elément de réponse : Dans la méthode suivante, l'erreur apparait lorsque qu'on a pas de tag file dans le fichier d'installation:
    la ligne concernée étant la définition de la variable $filename

    	private function subparse_exec()
    	{
    		if ($this->get_config('install'))
    		{
    			$code = str_replace(array("\r\n", "\r"), array("\n", "\n"), $this->handler->code[0]->getData());
    			$filename = $this->handler->file[0]->getData();
    
    			if ($this->get_config('install_file'))
    			{
    				// Si on execute un fichier on l'ouvre et on parse le code, pour ensuite l'évaluer
    				if ($filename)
    				{
    					$fd = fopen(ROOT . $filename, 'r');
    					$content = trim(fread($fd, filesize(ROOT . $filename)));
    					fclose($fd);
    
    					$content = preg_replace('#^<\?(php)?#', '', $content);
    					$content = preg_replace('#\?>$#', '', $content);
    					$content = preg_replace('#/\*\s*begin include\s*\*/.*?/\*\s*end include\s*\*/#si', '', $content);
    					$code = $content;
    				}
    
    				eval($code);
    			}
    		}
    	}
    
  6. Fichier(s) :
  7. Base de donnée utilisée : MySQL 4
  8. Type de serveur : Apache (généralement unix)


Dans les hauteurs des cieux, par delà les nuages et les sommets enneigés, l'aigle majestueux survole la terre...

Kosmos & Eagle homepage ^^
 
Volcan
Avatar de Eagle
  • Age : 30 ans
  • Messages : 1043
  • Inscrit : 22 Janvier 2005
  Lien vers ce message 14 Février 2008, 10:30
Bon, c'est vraiment très mineur, il suffit d'ajouter le code suivant dans le fichier d'installation et ça passe ;)
<file></file>


Dans les hauteurs des cieux, par delà les nuages et les sommets enneigés, l'aigle majestueux survole la terre...

Kosmos & Eagle homepage ^^
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 14 Février 2008, 13:29
Je note


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14190
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 02 Mars 2008, 21:47
Sujet archivé pour la raison suivante : Bug corrigé dans la version en développement.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Répondre


.