Bonjour tout le monde,

J'ai suivi le tutoriel complet pour apprendre à développer un site en php de A-Z ( ici). D'abord, un grand merci pour cette série de vidéo qui est géniale.

Ensuite, l'ensemble du projet marche parfaitement en local avec wamp, cependant lorsque j'upload le projet sur mon hébergeur, j'ai une erreur lorsque j'essaie d'accéder à un post.

Par exemple, si j'essaie d'aller sur ce lien, je suis toujours redirigé ver l'index au final et étant débutant j'avoue ne pas comprendre pourquoi.

Si vous avez une idée je suis preneur :).

Merci d'avance pour toute l'aide que vous pourrez m'apporter.

6 réponses


Ocsidot
Auteur
Réponse acceptée

Alors d'abord, merci à vous tous pour vos réponses :D

@antho07: les articles viennent du tutoriel, c'est simplement pour tester, ça ne va pas resté comme ça ne t'en fait pas ;)
@Xtr3me: J'utilise le bootstrap twitter juste pour les premiers tests (en suivant le tuto toujours) mon css arrivera dès que la partie fonctionnelle du site sera fonctionnelle x)

Le problème semble venir de l'hébergeur :/. J'ai un autre site d'hébergement sur lequel tout fonctionne parfaitement, je vais donc rester sur celui-ci.

J'ai tout de même dû faire quelques modifications dans le Router car j'avis des problèmes aussi là dedans (pas évident de coder en regardant la vidéo :D)

Encore merci de votre aide et bonne journée à tous

Bonjour, avant de comprendre le pourquoi du comment..
Les articles que tu as mis sur ton site en copiant collant... met du lorem ipsum si tu sais pas quoi mettre pour le moment... c'est pas tip top de copier l'article des autres...

Pour revenir au problème rencontré, l'url rewriting est bien supporté sur ton herbergeur ?
Si oui tu as essayé de placer un debug dans le dispatcher pour afficher le controller et l'action appelé quand on va sur une page ?

bien cordialement

Antho

C'est marrant de voir autant de personne utiliser le bootstrap Twitter moi je l'utilise simplement pour l'interface d'administration car j'ai pas eu le temps ni la motivation de faire une vraie interface d'administration mais pour le reste du site je préfère de loin faire ma propre interface.

Tout dépend où est le site , pour des ptits tests ça va bien , après quand on est plus que limité en talent artistique et qu'on a pas de graphiste, ça dépanne toujours

Oui c'est certains que pour des tests ça peut aider mais lorsque l'on veut se faire son propre blog etc c'est un peu lassant de toujours revoir cette interface.
Promis je tâcherai de faire ma propre interface d'administration quand j'en aurai le temps et la motivation ;) .
C'est sûrement un problème dans le Router. Je crois que ça vient du parser:

/**
        *Permet de parser une url
        *@param $url Url à parser
        *@return tableau contenant les paramètres
        **/
        static function parse($url,$request){
            $url = trim ($url,'/');
            if(empty($url)){
                $url = Router::$routes[0]'url'];
            }else{
                $match = false;
                 foreach(Router::$routes as $v){
                if(!$match && preg_match($v'redirreg'],$url,$match)){
                       $url = $v'origin'];
                       foreach($match as $k=>$v){
                        $url = str_replace(':'.$k.':',$v,$url);
                       }
                       $match = true;
                   }
                }
            }
            $params = explode('/',$url);
            if(in_array($params[0],array_keys(self::$prefixes))){
                $request->prefix = self::$prefixes$params[0]];
                array_shift($params);
                 }
            $request->controller= $params[0];
            $request->action= isset($params[1]) ? $params[1] : 'index';
            foreach(self::$prefixes as $k=>$v){
              if(strpos($request->action,$v.'_') === 0){
                $request->prefix = $v;
                $request->action = str_replace($v.'_','',$request->action);
              }
            }
            $request->params = array_slice($params,2);
            return true;
        }

Si ce n'est pas ça alors c'est sûrement la fonction url et/ou webroot.
Postes-nous l'objet $this->url du Request pour voir si ce n'est pas un problème de PATH_INFO comme d'habitude ^^ .

C'est pas un problème de l'hébergeur mais simplement un code inadapté au serveur, chaque hébergeur ne configure pas les serveurs de la même façon, j'ai eu le même problème avec one & one j'ai dû changer la fonction url, webroot et parse du Router ainsi que le PATH_INFO du Request.