Bonjour,
Voila je rencontre un petit problème avec mon code.
Router.php
<?php
class Router{
static function parse($url){
$url = trim($url,'/');
$params = explode('/',$url);
$r = array(
'controller' => $params[0],
'action' => $params[1]
);
}
}
?>
Décrivez ici votre code ou ce que vous cherchez à faire
Dispatcher
<?php
class Dispatcher{
var $request;
function __construct(){
$this->request = new Request();
Router::parse($this->request->url);
}
}
?>
Request.php
<?php
class Request{
public $url; // url appellé par l'utilisateur
function __construct(){
$this->url = $_SERVER['PATH_INFO'];
}
}
?>
Décrivez ici ce que vous cherchez à obtenir
Notice: Undefined offset: 1 in
Mercie bonjour Carouge10
Notice: Undefined offset: 1 in C:\wamp\www\MonSite\Site\core\Router.php on line 8
Cela veux dire qu'il n'y pas de donner à l'index 1 de votre tableau.
Faite un var_dump de params et vous verrez qu'il n'y a pas d'action.
Bonjour,
Après
$params = explode('/', $url);
Il faut t'assurer que ton Array "$params" contient bien l'index 1
Essaye REQUEST_URI plutot que PATH_INFO
PATH_INFO nécessite une modif d'Apache pour être renseigné
bonjour skp
offt losque je tape cet url http://localhost/MonSite2/Site/pages/view/index
avec c code
<?php
class Router{
static function parse($url){//,$request
$url = trim($url,'/');
$params = explode('/', $url);
print_r($params);
}
}
?>
j obtient
Array ( [0] => pages [1] => view [2] => index )
ici avec ce code
<?php
class Router{
static function parse($url){//,$request
$url = trim($url,'/');
$params = explode('/', $url);
$r = array(
'controller' => $params[0],
'action' => $params[1]
);
}
}
?>
et c url http://localhost/MonSite2/Site/pages/
j ai cet erreur Notice: Undefined offset: 1 in C:\wamp\www\MonSite2\Site\core\Router.php on line 8
la fonction chercher le paramètre action qui est censé être après "pages" et là il n'y a rien.
Dans le tuto il est indiqué
'action' => isset($param[1]) ? $params[1] : 'index'
donc s'il n'y a pas d'action, ce sera 'index' par défaut