Bonjour
Suite au tuto "créer un mvc" de GRAFIKART j'ai un message d'erreur que je n'arrive pas à résoudre.
Pouvez-vous m'aider s'ils vous plait.
Merci beaucoup
Warning: require(controllers/.php) [function.require]: failed to open stream: No such file or directory in...
controllers/.php
C'est bien normal ça ? je me serai attendu à voir 'controllers.php' il n'y aurait pas un souci dans l'include ?
En tout cas montre ton code si tu veux qu'on t'aide...
<?php
define('WEBROOT',str_replace('index.php','',$_SERVER'SCRIPT_NAME']));
define('ROOT',str_replace('index.php','',$_SERVER'SCRIPT_FILENAME']));
require(ROOT.'core/model.php');
require(ROOT.'core/controller.php');
mysql_connect('127.0.0.1','root','');
mysql_select_db('mvc');
$params = explode('/',$_GET'p']);
$controller = $params[0];
$action = isset($params[1]) ? $params[1] : 'index';
require('controllers/'.$controller.'.php');
$controller = new $controller();
if(method_exists($controller, $action)){
unset($params[0]); unset($params[1]);
call_user_func_array(array($controller,$action),$params);
//$controller->$action();
}
else{
echo 'erreur 404';
}
?>
Bonjour
Merci pour votre aide mais j'ai la même erreur
<?php
define('WEBROOT',str_replace('index.php','',$_SERVER'SCRIPT_NAME']));
define('ROOT',str_replace('index.php','',$_SERVER'SCRIPT_FILENAME']));
require(ROOT.'core/model.php');
require(ROOT.'core/controller.php');
mysql_connect('127.0.0.1','root','');
mysql_select_db('mvc');
$params = explode('/',$_GET'p']);
//$controller = $params[0];
$controller = empty($params[0]) ? 'ControllerParDefaut' : $params[0];
$action = isset($params[1]) ? $params[1] : 'index';
require('controllers/'.$controller.'.php');
$controller = new $controller();
if(method_exists($controller, $action)){
unset($params[0]); unset($params[1]);
call_user_func_array(array($controller,$action),$params);
//$controller->$action();
}
else{
echo 'erreur 404';
}
?>
Warning: require(controllers/ControllerParDefaut.php) [function.require]: failed to open stream: No such file or directory in ...
<?php
define('WEBROOT',str_replace('index.php','',$_SERVER'SCRIPT_NAME']));
define('ROOT',str_replace('index.php','',$_SERVER'SCRIPT_FILENAME']));
require(ROOT.'core/model.php');
require(ROOT.'core/controller.php');
mysql_connect('127.0.0.1','root','');
mysql_select_db('mvc');
$params = explode('/',$_GET'p']);
//$controller = $params[0];
$controller = empty($params[0]) ? 'ControllerParDefaut' : $params[0];
$action = isset($params[1]) ? $params[1] : 'index';
require('controllers/'.$controller.'.php');
$controller = new $controller();
if(method_exists($controller, $action)){
unset($params[0]); unset($params[1]);
call_user_func_array(array($controller,$action),$params);
//$controller->$action();
}
else{
echo 'erreur 404';
}
?>
Il faut que tu crées un controller par défault. (dans le dossier controllers) Dans ce cas c'est "ControllerParDefaut" mais tu peux changer par autre chose…
Cette erreur dit qu'il ne peut pas ouvrir se fichier car ce dernier est introuvable :)
Pour le controller par défaut, tu peux par exemple créer un controller home. Une fois ceci fait, ton code ressemblera à ça :
<?php
define('WEBROOT',str_replace('index.php','',$_SERVER'SCRIPT_NAME']));
define('ROOT',str_replace('index.php','',$_SERVER'SCRIPT_FILENAME']));
require(ROOT.'core/model.php');
require(ROOT.'core/controller.php');
mysql_connect('127.0.0.1','root','');
mysql_select_db('mvc');
$params = explode('/',$_GET'p']);
$controller = empty($params[0]) ? 'home' : $params[0];
$action = isset($params[1]) ? $params[1] : 'index';
require('controllers/'.$controller.'.php');
$controller = new $controller();
if(method_exists($controller, $action)){
unset($params[0]); unset($params[1]);
call_user_func_array(array($controller,$action),$params);
}
else{
echo 'erreur 404';
}
?>