par
Geoffroy57 » 12 sept. 2008, 06:30
Bonjour, je suis en train de créer un site internet "from scratch" et j'ai un petit problème depuis quelques temps que je n'arrive pas à résoudre. En effet, la page reste blanche et l'exécution du script s'arrête prématurément, quoique je fasse. J'ai installé un petit moteur pour obtenir des infos de debuggage, et j'ai bien remarquer que le script s'arrête sans raison lors de l'inclusion d'un fichier (l'instruction précédente fonctionne encore, et le fichier n'est pas indiquer comme inclut).
J'avais déjà certains problèmes comme cela, et ça venait du fait de la structure du fichier à inclure, mais la j'ai beau chercher je ne trouve rien!
Voila le log d'erreur en entier [URL supprimée] ou plus simplement [URL supprimée] pour n'afficher que les fichiers incluent.
Et voici le fichier qui ne veut pas être inclut et provoque un arrêt (sans erreur, notice, exception ou même erreur du CGI) du script :
<?php
if(!defined("Core")) {
require_once("core/error.php");
exit(error(E_INCLUDE_ERROR, "", __FILE__, 0));
}
function send_event($component, $state) {
if (debug::component_profiled($component)) {
register_tick_function(array("debug", "profiling_component"),
$component, $state);
debug::profile($component, $state);
declare (ticks = 1) {
require("components/" .
$component . "/run.php");
}
debug::profile($component, $state);
unregister_tick_function(array("debug", "profiling_component"));
}
else {
require("components/" .
$component . "/run.php");
}
}
function special_events($events, $state, $component) {
if ($events == null) {
return;
}
$events = explode (";", $events);
$arg = $state;
$text = null;
foreach($events as $event) {
$state .= ":" . $event;
send_event($component, $state);
$state = $arg;
}
}
function admin_event($events, $state, $component) {
if (! defined("admin")) {
return;
}
$state .= ":ADMIN";
send_event($component, $state);
special_events($events, $state, $component);
}
function components($state) {
$stmt = $GLOBALS['db']->query("SELECT components, events
FROM " . prefix . "_page
WHERE name='" . page . "'");
$data = $stmt->fetch(PDO::FETCH_OBJ);
$stmt->closeCursor();
if (defined("event_eq_tpl") &&
event_eq_tpl == $state) {
send_event("tpl_mgr", "SHOW;" . tpl . ";");
}
$components = explode(";", $data->components);
foreach($components as $component) {
send_event($component, $state);
special_events($data->events, $state, $component);
admin_event($data->events, $state, $component);
}
}
abstract class component {
protected $events;
protected $config;
private static $stmt_events = null;
private static $stmt_config = null;
public function __construct($component) {
$layout = layout;
if(defined("layout_real")) {
$layout = layout_real;
}
if (self::$stmt_events == null &&
self::$stmt_config == null) {
self::$stmt_events = $GLOBALS['db']->prepare("SELECT *
FROM " . prefix . "_component_layout_event
WHERE component=':component'
AND layout='" . $layout . "'");
self::$stmt_events->bindParam(':component', $component);
self::$stmt_config = $GLOBALS['db']->prepare("SELECT *
FROM " . prefix . "_components
WHERE name=':component'");
self::$stmt_config->bindParam(':component', $component);
}
self::$stmt_events->execute();
$data = self::$stmt_events->fetch(PDO::FETCH_OBJ);
self::$stmt_events->closeCursor();
$this->events = explode(";", $data->events);
self::$stmt_config->execute();
$data = self::$stmt_config->fetch(PDO::FETCH_OBJ);
self::$stmt_config->closeCursor();
$this->config = explode ("|", $data->config);
}
public function run($action);
}
abstract class plug_here extends component {
protected $plugins;
private static $stmt = null;
protected function __construct($component) {
if (self::$stmt == null) {
self::$stmt = $GLOBALS['db']->prepare("SELECT version
FROM " . prefix . "_components
WHERE name=':component'");
self::$stmt->bindParam(':component', $component);
}
parent::__construct($component);
self::$stmt->execute();
$data = self::$stmt->fetch(PDO::FETCH_OBJ);
$version = $data->version;
$this->plugins = array();
$plugins = getfiles("components/" . $component . "/plugins/",
"php");
foreach($plugins as $plugin):
require_once($plugin);
$plugin_name = substr($plugin, 0, strlen(
"components/" . $component . "/plugins/"));
$this->plugins[] = $plugin_name;
eval($plugin_name . "::init(" . $version . ");");
endforeach;
}
protected function plug_point($point) {
foreach($this->plugins as $plugin):
eval($plugin . "::plug_point(" . $point . ");");
endforeach;
}
}
abstract class plugin {
abstract static protected $name;
abstract static protected $version;
abstract static protected $component;
static public function init($version) {
if (self::version_matches($version) &&
self::sql_inited($version)) {
}
}
static private function version_matches($version) {
if ((is_array(self::$version) &&
in_array($version, self::$version) ||
$version == self::$version)):
return true;
endif;
return false;
}
static private function db_inited($version) {
}
}
?>
Merci d'avance!
Bonjour, je suis en train de créer un site internet "from scratch" et j'ai un petit problème depuis quelques temps que je n'arrive pas à résoudre. En effet, la page reste blanche et l'exécution du script s'arrête prématurément, quoique je fasse. J'ai installé un petit moteur pour obtenir des infos de debuggage, et j'ai bien remarquer que le script s'arrête sans raison lors de l'inclusion d'un fichier (l'instruction précédente fonctionne encore, et le fichier n'est pas indiquer comme inclut).
J'avais déjà certains problèmes comme cela, et ça venait du fait de la structure du fichier à inclure, mais la j'ai beau chercher je ne trouve rien!
Voila le log d'erreur en entier [URL supprimée] ou plus simplement [URL supprimée] pour n'afficher que les fichiers incluent.
Et voici le fichier qui ne veut pas être inclut et provoque un arrêt (sans erreur, notice, exception ou même erreur du CGI) du script :
[php]<?php
if(!defined("Core")) {
require_once("core/error.php");
exit(error(E_INCLUDE_ERROR, "", __FILE__, 0));
}
function send_event($component, $state) {
if (debug::component_profiled($component)) {
register_tick_function(array("debug", "profiling_component"),
$component, $state);
debug::profile($component, $state);
declare (ticks = 1) {
require("components/" .
$component . "/run.php");
}
debug::profile($component, $state);
unregister_tick_function(array("debug", "profiling_component"));
}
else {
require("components/" .
$component . "/run.php");
}
}
function special_events($events, $state, $component) {
if ($events == null) {
return;
}
$events = explode (";", $events);
$arg = $state;
$text = null;
foreach($events as $event) {
$state .= ":" . $event;
send_event($component, $state);
$state = $arg;
}
}
function admin_event($events, $state, $component) {
if (! defined("admin")) {
return;
}
$state .= ":ADMIN";
send_event($component, $state);
special_events($events, $state, $component);
}
function components($state) {
$stmt = $GLOBALS['db']->query("SELECT components, events
FROM " . prefix . "_page
WHERE name='" . page . "'");
$data = $stmt->fetch(PDO::FETCH_OBJ);
$stmt->closeCursor();
if (defined("event_eq_tpl") &&
event_eq_tpl == $state) {
send_event("tpl_mgr", "SHOW;" . tpl . ";");
}
$components = explode(";", $data->components);
foreach($components as $component) {
send_event($component, $state);
special_events($data->events, $state, $component);
admin_event($data->events, $state, $component);
}
}
abstract class component {
protected $events;
protected $config;
private static $stmt_events = null;
private static $stmt_config = null;
public function __construct($component) {
$layout = layout;
if(defined("layout_real")) {
$layout = layout_real;
}
if (self::$stmt_events == null &&
self::$stmt_config == null) {
self::$stmt_events = $GLOBALS['db']->prepare("SELECT *
FROM " . prefix . "_component_layout_event
WHERE component=':component'
AND layout='" . $layout . "'");
self::$stmt_events->bindParam(':component', $component);
self::$stmt_config = $GLOBALS['db']->prepare("SELECT *
FROM " . prefix . "_components
WHERE name=':component'");
self::$stmt_config->bindParam(':component', $component);
}
self::$stmt_events->execute();
$data = self::$stmt_events->fetch(PDO::FETCH_OBJ);
self::$stmt_events->closeCursor();
$this->events = explode(";", $data->events);
self::$stmt_config->execute();
$data = self::$stmt_config->fetch(PDO::FETCH_OBJ);
self::$stmt_config->closeCursor();
$this->config = explode ("|", $data->config);
}
public function run($action);
}
abstract class plug_here extends component {
protected $plugins;
private static $stmt = null;
protected function __construct($component) {
if (self::$stmt == null) {
self::$stmt = $GLOBALS['db']->prepare("SELECT version
FROM " . prefix . "_components
WHERE name=':component'");
self::$stmt->bindParam(':component', $component);
}
parent::__construct($component);
self::$stmt->execute();
$data = self::$stmt->fetch(PDO::FETCH_OBJ);
$version = $data->version;
$this->plugins = array();
$plugins = getfiles("components/" . $component . "/plugins/",
"php");
foreach($plugins as $plugin):
require_once($plugin);
$plugin_name = substr($plugin, 0, strlen(
"components/" . $component . "/plugins/"));
$this->plugins[] = $plugin_name;
eval($plugin_name . "::init(" . $version . ");");
endforeach;
}
protected function plug_point($point) {
foreach($this->plugins as $plugin):
eval($plugin . "::plug_point(" . $point . ");");
endforeach;
}
}
abstract class plugin {
abstract static protected $name;
abstract static protected $version;
abstract static protected $component;
static public function init($version) {
if (self::version_matches($version) &&
self::sql_inited($version)) {
}
}
static private function version_matches($version) {
if ((is_array(self::$version) &&
in_array($version, self::$version) ||
$version == self::$version)):
return true;
endif;
return false;
}
static private function db_inited($version) {
}
}
?>[/php]
Merci d'avance!