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
Auteur
Réponse acceptée

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....

J'ai pas mal de prob moi aussi, regarde le sujet que j'avais fait tu trouvera peut-être ton bonheur lol<br>
http://www.grafikart.fr/forum/topics/16535
Bon courage ;)

Silence
Auteur

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. :)