développer un site Jour 4

Par cyril41, il y a 14 ans


J'ai un problème avec la pagination, lorsque je clic sur la page numéro 2, j'ai une erreur:
Warning: require(C:\wamp\www\site_web_8a8\controller\Posts?page=2Controller.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\site_web_8a8\core\Dispatcher.php on line 26

Pouvez-vous m'aider?
SVP

4 réponses

cyril41, il y a 14 ans

<?php
/**
* Dispatcher
* Permet de charger le controller en fonction de la requête utilisateur
**/
class Dispatcher{

var $request; //Objet request

/**
* Fonction principale du dispatcher
* Charge le controller en fonction du routing
**/
function __construct(){
this->request = new Request(); Router::parse(this->request->url,this->request); $controller = $this->loadController(); if(!in\_array(this->request->action , array_diff(get_class_methods(controller),get\_class\_methods('Controller')))){ $this->error('Le controller :"'.this->request->controller.'" n\'a pas de methode "'.this->request->action.'"'); } call\_user\_func\_array(array(controller,this->request->action),this->request->params);
controller->render(this->request->action);//rends automatiquement la vue
}

/**
*Permet de générer une page d'erreur en cas de problème au niveau du routing (page inexistante)
**/
function error(message){ $controller = new Controller(this->request);
controller->e404(message);
}

function loadController(){
name = ucfirst(this->request->controller).'Controller';//met une majuscule en premier
file = ROOT.DS.'controller'.DS.name.'.php';
require file; return new $name(this->request);
}

}
?>

J'ai revisionné le tuto et j'ai bien la même chose?

wilose, il y a 14 ans

Qu'y a t-il au alentour de la ligne 26?
Un problème de fichier ou d'adresse peut être.

Arthmael, il y a 14 ans

Bonjour, peux tu mettre ton code dans la balise <code></code> que cela soit plus clair... Sinon, , le problème est que ton lien vers la page 2 est interprété comme controller & pas comme action. Ton lien devrai ressembler à une url du style... Que donne tes script dans ton controller post ?

cyril41, il y a 14 ans

Bon merci pour votre aide mais le problème parait résolu. En fait c'est encore le PATH_INFO qui ne fonctionne pas chez 1&1. Lorsque je cliquais sur une page l'argument passait pour une "url appelé par l'utilisateur". Je ne suis pas tout à fait sûr mais il semble bien que c'était le problème.

tchao et merci a vous.