8800 sujets

Développement web côté serveur, CMS

Bonjour,

Je travail avec websiteBaker... mais les fichier sources sont bourrés d'erreurs.. j'enchaine depuis ce matin les erreurs plus stupide les unes que les autres, et là je trouve pas de solution Smiley decu

Parse error: syntax error, unexpected T_STRING in /mnt/136/sda/4/9/anaisosmoze/wb/framework/globalExceptionHandler.php on line 40

Mon code :


[code=php]
<?php
/**
 * @category        WebsiteBaker
 * @package         WebsiteBaker_core
 * @author          Werner v.d.Decken
 * @copyright       WebsiteBaker.org e.V.
 * @link             http://websitebaker2.org
 
 * @license          http://www.gnu.org/licenses/gpl.html
 
 * @version         $Id: class.order.php 1487 2011-08-10 13:20:15Z DarkViper $
 * @filesource		$HeadURL:  http://svn.websitebaker2.org/branches/2.8.x/wb/framework/class.order.php  $
 *
 * Global exception-handler
 * This module will activate a global exception handler to catch all thrown exceptions
 *
 */
/**
 * define several default exceptions directly to prevent from extra loading requests
 */
/**
 * define Exception to show error after accessing a forbidden file
 */
	class IllegalFileException extends LogicException {
		function ToString() {
			$file = str_replace(dirname(dirname(__FILE__)), '', $this->getFile());
			$out  = '<div style="color: #ff0000; text-align: center;"><br />';
			$out .= '<br /><br /><h1>Illegale file access</h1>';
			$out .= '<h2>'.$file.'</h2></div>';
			return $out;
		}
	} // end of class

/**
 *
 * @param Exception $e
 */
	function globalExceptionHandler($e) {
		// hide server internals from filename where the exception was thrown
		$file = str_replace(dirname(dirname(__FILE__)), '', $e->getFile());
		// select some exceptions for special handling
		[b]if ($e instanceof IllegalFileException) {[/b]
			$sResponse  = $_SERVER['SERVER_PROTOCOL'].' 403 Forbidden';
			header($sResponse);
			echo $e;
		}else {
		// default exception handling
			$out  = 'There was an unknown exception:'."\n";
			$out .= $e->getMessage()."\n";
			$out .= 'in line ('.$e->getLine().') of ('.$file.')'."\n";
			echo $out;
		}
	}
/**
 * now activate the new defined handler
 */
	set_exception_handler('globalExceptionHandler');

?>

[/code]

Quelqu'un aurait il une idée ? Smiley decu Merci d'avance Smiley cligne Smiley ohwell
Modifié par anaisosmoze (05 Dec 2011 - 08:42)
Bonjour anaisosmoze et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien "Aide" qui apparaît tout en haut du forum est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Désolé pour la mise en page, j'ai rectifié en espérant que là ce soit meilleur..

@titchagcreation : J'utilise la version 5.2.2 de php Smiley ohwell
sais-tu ce qui déclenche le handler?

parce que chez moi avec un appel comme ça

$toto = new IllegalFileException();

globalExceptionHandler($toto);

le code tourne. si tu fais ce test chez toi tu as quel résultat?

qu'un bémol ça n'affiche pas le ToString de la class IllegalFileException.
il aurait fallu que la fonction se nomme __ToString pour que le echo $e marche.

Mais pas de parse error. peut-etre le handler est déclenché avec un mauvais $e en parametre
ou un pb de config