Bonjour à tous,
tout d'abord merci à Grafikart pour tes tutos vraiment géniaux.Donc je tiens à préciser que j'ai effectué une recherche sur mon problème,j'ai trouvé un post qui me semble similaire mais la solution donnée ne m'aide pas trop...Bref j'ai d'abord eu un problème avec le PATH_INFO et malgré les solutions proposées et de nombreuses recherches je n'ai pas pu résoudre le "Undefined index", j'ai donc remplacé par " $this->url = isset($_SERVER'PATH_INFO']) ? $_SERVER'PATH_INFO'] " mais maintenant mon problème vient du dispatcher au niveau du $file qui au lieu de prendre "pages" dans l'url, pour obtenir PagesController.php , prend le nom de ma base (/MonSite/webroot/...) = MonSiteController.php .Donc pour y voir plus clair j'ai tapé en dur $files = 'PagesController.php' et j'ai de nouveau une erreur m'indiquant qu'il ne trouve pas '...\view\index.php' :(
J'ai donc revisionné le tuto, j'ai bien écrit tout le code comme dans la vidéo,je n'ai rien oublié j'imagine donc que le problème est du au PATH_INFO mais là je cale.Je n'arrive pas à le configurer sur la dernière version de Wamp, j'ai décommenté le cgi.fix mais pour le AcceptPathInfo je n'ai pas trouvé.Voilà j'ai essayé d'être le plus clair et précis possible, en espérant que vous puissiez m'aiguiller .Merci d'avance

15 réponses


Grafikart
Réponse acceptée

Quand tu met en place les sources du tutoriel ça ne marche pas non plus ?

killaz
Auteur
Réponse acceptée

J'ai utilisé les sources et ça fonctionne.C'est cool j'aurais aimé y arrivé de moi même mais bon... Je vais quand même comparer mon code au tien histoire de comprendre le problème et je posterai si je trouve histoire d'aider ceux qui auraient le même problème, merci pour ton aide !

Je suis dans le même cas que toi.

Au début je pensait à une faute d'inattention.
J'ai refait le tuto une seconde fois et toujours le même soucis.
Je me suis donc décidé à télécharger les sources du projet.

Rien à faire cela vient bien du PATH_INFO qui n'est pas définie.
J'ai essayé plusieurs technique donné sur Grafikart, mais sans succès.
J'ai cherché de manière acharné sur google rien de concluant.
J'ai essayé plusieurs distribution au cas ou, mais non rien à faire.
Ça fait maintenant deux jours que je suis dessus j'ai envie de m'arracher les cheveux.

Donc voila je pense que nous sommes nombreux dans le même cas.

killaz
Auteur

Salut volcomsteam83 , je t'avoue que cela me rassure un peu car je commençais à croire que cela venait de moi :P
J'ai regardé la doc Apache et [surtout] essayé de la comprendre à propos de PATH_INFO mais même leur explication ne résout pas le problème ! Bref je continue de chercher en attendant si je trouve quelque chose je vous tiens au courant.

J'ai aussi lu la doc Apache mais non rien.
Je continue de chercher, j'héspère pouvoir rapidement vous tenir au courant.

killaz
Auteur

D'ailleurs encore une petite question, j'ai lu sur plusieurs sites au cours de mes recherches que le PATH_INFO était obsolète pour php 5 et qu'il était préférable d'utiliser par exemple REQUEST_URI, si quelqu'un pouvait me confirmer si c'est exact?De plus avec REQUEST URI toujours le problème MonSiteController.php au lieu de PagesController.php

killaz
Auteur

Nouvelle précision, j'ai testé de modifier les paramètres suivants dans mon httpd.conf :

  • DocumentRoot "c:/wamp/www/" -> DocumentRoot "c:/wamp/www/MonSite"
  • <Directory />
    Options FollowSymLinks
    AllowOverride None = AllowOverride FileInfo
    AcceptPathInfo On

    Order deny,allow
    Deny from all

</Directory>

<Directory "c:/wamp/www/"> == <Directory "c:/wamp/www/MonSite">

Options Indexes FollowSymLinks
AllowOverride None == AllowOverride FileInfo
AcceptPathInfo On

Order Allow,Deny
Allow from all

</Directory>

Je n'ai plus l'erreur Undefined index avec PATH_INFO mais une erreur subsiste :
Warning: require(C:\wamp\www\MonSite\controller\MonSiteController.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\MonSite\core\Dispatcher.php on line 23

Donc j'avoue que je ne sais toujours pas si mes modifs ont permis de corriger "Undefined index PATH_INFO" ou juste de " l'ignorer " , mais s'il est corrigé je vois pas d'où vient la dernière erreur ,soit il manque
une partie dans la vidéo(mais bon ça m'étonnerait) soit je suis réellement passé a côté de quelque chose...

Faites un test très simple. Créez un fichier index.php et appellez le en faisant index.php/chien/chat
Dans ce index.php mettez juste un print_r($_SERVER) et dites moi ce que vous avez

Je vient de trouver ou était mon erreur effectivement je me suit obstiné sur l'url de base à savoir http://localhost/tuto/site/webroot/index alors qu'il suffisait de ce rendre sur http://localhost/tuto/site/pages pour avoir un PATH_INFO disponible dans $_SERVER.

Salut grafikart, je suis dans le même cas que les autres, j'ai donc fait ce que tu demandais et cela me donne:

Array ( [HTTP_HOST] => localhost [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [HTTP_ACCEPT_LANGUAGE] => fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7 [HTTP_CONNECTION] => keep-alive [PATH] => C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\; [SystemRoot] => C:\Windows [COMSPEC] => C:\Windows\system32\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC [WINDIR] => C:\Windows [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.2.17 (Win32) PHP/5.3.5 [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => C:/wamp/www/ [SERVER_ADMIN] => admin@localhost [SCRIPT_FILENAME] => C:/wamp/www/path_info/index.php [REMOTE_PORT] => 51280 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /path_info/index.php/chien/chat [SCRIPT_NAME] => /path_info/index.php [PATH_INFO] => /chien/chat [PATH_TRANSLATED] => C:\wamp\www\chien\chat [PHP_SELF] => /path_info/index.php/chien/chat [REQUEST_TIME] => 1317916383 )
killaz
Auteur

Bonjour Grafikart,
donc j'ai créé un index.php à la racine de mon site et l'appelle ainsi :

http://localhost/MonSite/index.php/chien/chat

et j'obtiens :

Warning: require(C:\wamp\www\MonSite\controller\ChienController.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\MonSite\core\Dispatcher.php on line 23

et j'ai essayé de faire comme volcomsteam83 soit :

http://localhost/MonSite/pages

et j'obtiens:

Warning: require(C:\wamp\www\MonSite\view\index.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\MonSite\core\Controller.php on line 20

Je commence à être perdu :p

@ruben66 : Toi c'est bon tu as le path info là :)
@killaz : Crée ce fichier en dehors du Framework :)

killaz
Auteur

J'ai un peu avancé dans le schmilblik du moins je pense...
J'ai modifié la function render notamment au niveau de la variable $view qui ressemblait à ça:
$view = ROOT.DS.'view'.DS.$view.'.php';

et j'ai juste ajouté 'pages' : $view = ROOT.DS.'view'.DS.'pages'.DS.$view.'.php';

Je n'ai donc plus aucune erreur quand je met l'url

http://localhost/tuto/MonSite/pages/ , et quand je rajoute par exemple 'lol' à la fin, l'erreur est je pense bien gérée car dans la console dev de FF j'ai bien l'erreur 404, le nouveau problème est que rien ne s'affiche.

Mon layout n'affiche rien,ni mon message contenu dans .../view/pages/index.php ni mon message d'erreur dans ../view/pages/errors/404.php
Sinon j'ai quand même fait le fichier index.php et voilà le contenu :

Array (
[HTTP_HOST] => localhost
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[HTTP_CONNECTION] => keep-alive
[PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\QuickTime\QTSystem\
[SystemRoot] => C:\WINDOWS
[COMSPEC] => C:\WINDOWS\system32\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
[WINDIR] => C:\WINDOWS
[SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache/2.2.21 (Win32) PHP/5.3.8
[SERVER_NAME] => localhost
[SERVER_ADDR] => 127.0.0.1
[SERVER_PORT] => 80
[REMOTE_ADDR] => 127.0.0.1
[DOCUMENT_ROOT] => C:/wamp/www
[SERVER_ADMIN] => admin@localhost
[SCRIPT_FILENAME] => C:/wamp/www/index2.php
[REMOTE_PORT] => 1879
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /index2.php
[SCRIPT_NAME] => /index2.php
[PHP_SELF] => /index2.php
[REQUEST_TIME] => 1317969089 )

killaz
Auteur

Non je n'ai pas téléchargé les sources

Bonjour j'ai également ce souci, de ne pas avoir le PATH_INFO lors du print server
comment créer t'ont ce fichier ?