Site de a à z Pagination

Par Silence, il y a 11 ans


Bonjour,

J'ai fini le tutoriel "Site de a à z", je l'ai uploadé sur un serveur ovh mutualisé. Tout marche nickel exepté la pagination qui me renvoit comme message "Le controller ?page=2 n'existe pas.".
Je comprends pas tous les autres liens du site fonctionnent bien et en local je n'ai aucun soucis.

Je me demande si cela ne vient pas de Request.php à la ligne suivante :

$this->url = isset($_SERVER['REQUEST_URI']) ?$_SERVER['REQUEST_URI'] : '/';

Je débute en php. Merci à celui qui voudra bien m'aider.

3 réponses

Silence, il y a 11 ans

Merci, mais j'ai déjà essayé ce topic. Et sauf erreur de ma part je pense les avoir tous fait.

Je suis persuadé que mon problème est dû à la fonction construct de Request.php avec le changement de $_SERVER['PATH_INFO'] en $_SERVER['REQUEST_URI']. Ce que je trouve bizarre c'est que tous les liens fonctionnent exepté la pagination.

J'ai également testé la solution proposée par iriven:
http://www.grafikart.fr/forum/topics/9920
Mais j'ai cette erreur "Le controller http n'existe pas".

Et toi quels sont les problèmes que tu rencontre ? Qui sait je pourrais peut être t'aider. :)

Silence, il y a 11 ans

Du coup j'ai trouvé une solution à mon problème. Je pense pas que ça soit la bonne mais elle fonctionne et je n'ai pas trop le temps de m'attarder sur le sujet pour l'instant.

Request.php :

class Request{ public $url; public $page = 1; public $prefix = false; public $data = false; function __construct(){ if(isset($_GET['page'])){ if (!isset($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = ''; } $_SERVER['PATH_INFO'] = substr(urldecode($_SERVER['REQUEST_URI']),-strlen($_SERVER['REQUEST_URI'])+strlen($_SERVER['REQUEST_URI'])*2 ); $this->url = isset($_SERVER['PATH_INFO']) ?$_SERVER['PATH_INFO'] : '/'; }else{ $this->url = isset($_SERVER['REQUEST_URI']) ?$_SERVER['REQUEST_URI'] : '/'; } if(isset($_GET['page'])){ if(is_numeric($_GET['page'])){ if($_GET['page'] > 0){ $this->page = round($_GET['page']); } } } if(!empty($_POST)){ $this->data = new stdClass(); foreach($_POST as $k=>$v){ $this->data->$k=$v; } } } }

Après si quelqu'un a une meilleur solution à proposer....