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
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
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.
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.
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.
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é.
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 ?';
}
}