Bonjour,

Je suis entrain de faire ce tuto.

Je rencontre une erreur quand je teste http://localhost/tuto/ qui mon url en local j'ai une erreur voir ci-dessous.

Notice: Undefined index: PATH_INFO in D:\Sites\wamp\www\tuto\core\Request.php on line 7
Call Stack

Time Memory Function Location

1 0.0007 675576 {main}( ) ..\index.php:0
2 0.0018 683232 Dispatcher->__construct( ) ..\index.php:9
3 0.0018 683568 Request->__construct( ) ..\Dispatcher.php:7

Si je tape mon url http://localhost/tuto/css/style.css je vois bien le contenu de mon fichier css.

Une question vu que par rapport au tuto j'ai un dossier de moins dans mon arborescence la ligne du fichier index.php
au lieu de l'écrire comme ceci.
define('BASE_URL',dirname(dirname($_SERVER'SCRIPT_NAME'])));

je devrais certainement l'ecrire comme ça :

define('BASE_URL',dirname($_SERVER'SCRIPT_NAME']));

Merci pour les solutions

Bruno

10 réponses


Grafikart
Réponse acceptée

fait un print_r(get_defined_constants()); ou print_r($_SERVER); pour voir si une variable peut remplacer PATH_INFO.

Bonsoir Bruno, j'ai eu le même souci au départ. En fait il faut décommenter(retirer le '#' au début) la ligne "LoadModule rewrite_module modules/mod_rewrite.so" dans le fichier httpd.conf. Il s'agit de la ligne de redirection. Tout devrait fonctionner sans problème. Je vous conseille aussi de suivre à la lettre le tuto, C-à-d, taper les mêmes adresses que donne Jonthan dans son tuto. J'attends votre retour pour cette manipulation.

Bruno
Auteur

Bonjour Tricepha,

Merci d'avoir répondu. Je n'ai pas de fichier httpd.conf. J'en suis au 2eme jour et plus j'écris du code plus j'ai d'erreur.
Du coup j'ai laissé un peut tombé. Mais si quelqu'un pouvais me dépatouiller et comprendre d'où vient mon erreur.

Merci
Bruno

Bonjour bruno,
le fichier httpd.conf est le fichier du server Apache de Wamp. Pour y aller: un clic sur wamp->Apache->httpd
Ne baissez surtout pas la main car c'est un tuto que vous devrez suivre jusqu'à la fin. Il est super cool pour bien développer. Je vous demande de reprendre, s'il vous plait, le tuto depuis le début et surtout suivre au pas. Si vous gardez dans votre barre d'adresse http://localhost/tuto/css/style.css, Wamp va râler. Il vous dira que le path_info n'existe pas. C'est normal. Ecoutez moi bien, à l'étape où vous êtes il faut taper l'adresse: http://localhost/tuto/pages/view/index. Et là si vous faites le print_r($_SERVER)vous aurez bien le [PATH_INFO]=> /pages/view/index . N'oubliez pas que l'objectif à ce niveau est d'atteindre l'index à partir de la vue (view). Je vous assure que cela fonctionnera sans problème.
A bientôt Bruno.

Bruno
Auteur

Bonjour,

Merci pour l'astuce sur wamp.
Merci aussi pour les encouragements. Je vais reprendre de zéro ce qui est dommage car c'est du taf.
Pourquoi reprendre de zéro ? Car j'ai des erreurs avec Dispatcher et je ne vois encore pas ce qui cloche.
Pourtant j'ai bidouillé dans le php mais là je ne vois pas.

Bruno

Salut Bruno,
Quand je regarde le chemun de votre dossier, je constate que vous avez mal configuré votre wamp. En effet wamp doit être au début de votre disque D. Autrement vous devez avoir une adresse du genre D:wamp\www\sites... Je vous propose de revoir votre installation. Si cela se confirme merci de le réinstaller.

Bruno
Auteur

Bonjour Tricepha,

J'ai résolu le problème. Dans une de mes frappes j'ai supprimé un { et c'est ce qui me provoquai une erreur. Il est vrai que j'ai installé wamp sur mon D et qui plus est dans un dossier Sites. Mais ceci depuis plusieurs années et ça à toujours fonctionné.

Ok tout va bien alors

Bruno
Auteur

Pour le moment oui !

Bruno
Auteur

Le sourire a été de courte durée. Voici l'erreur ci-dessous le problème c'est que je ne comprends pas les erreurs pour les modifier et les corriger.

( ! ) Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in D:\Sites\wamp\www\tuto\site\core\Dispatcher.php on line 10
Call Stack
#   Time    Memory  Function    Location
1   0.0007  677656  {main}( )   ..\index.php:0
2   0.0027  703832  Dispatcher->__construct( )  ..\index.php:9
3   0.0032  708344  call_user_func_array ( )    ..\Dispatcher.php:10

Fichier Dispatcher

<?php
    class Dispatcher{

        var $request;

        function __construct(){
                $this->request = new Request();
                Router::parse($this->request->url,$this->request);
                $controller = $this->loadController();
                call_user_func_array(array($controller,$this->request->action),array());
        }

        function loadController(){
            $name = ucfirst($this->request->controller).'Controller';
            $file = ROOT.DS.'controller'.DS.$name.'.php';
            require $file;
            $controller = new $name($this->request);

        }

    }

Fichier PagesController

<?php
    class PagesController extends Controller{

        function view(){
            echo 'Vous voyez ?';
        }

    }