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
Quand tu met en place les sources du tutoriel ça ne marche pas non plus ?
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.
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.
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
Nouvelle précision, j'ai testé de modifier les paramètres suivants dans mon httpd.conf :
<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 )
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 :)
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 )
Bonjour j'ai également ce souci, de ne pas avoir le PATH_INFO lors du print server
comment créer t'ont ce fichier ?