Bonjour à tous et à toutes !
Je vous expose mon problème :
Je sirotais tranquillement un verre de grenadine devant le tuto "Créer un site de A à Z : jour 2" quand tout à coup quelque chose d'horrible arriva !
Bon, plus sérieusement, j'en était à créer le fichier " Request.php" :
<?php
class Request{
public $url; //URL
function __construct(){
$this->url = $_SERVER'PATH_INFO']; // Le problème est là !
}
}
?>
Je retourne dans mon " Dispatcher.php" :
<?php
class Dispatcher{
var $request;
function __construct(){
$this->request = new Request();
echo $this->request->url; // Je mets toute l'URL dans un echo.
}
}
?>
Ensuite, je vais dans Google Chrome (j'utilise Wampserver 2.1) et j'actualise, ZUT :
Notice: Undefined index: PATH_INFO in C:\wamp\www\site\core\Request.php on line 8
J'ai pensé alors avoir une erreure dans mon code mais j'ai ensuite essayé avec :
$this->url = $_SERVER'SCRIPT_NAME']; //Dans le fichier "Request.php"
Et cela m'a bien renvoyé :
/site/webroot/index.php
C'est comme si le PATH_INFO n'était pas reconnu par mon WAMPSERVER...
Merci pour votre aide ! ;D
Je t'invite à tester la solution suivante proposée par Grafikart et approuvé dans un sujet similaire sur le forum ( http://www.grafikart.fr/forum/topic/2428):
"Pour les problèmes liés à PATH_INFO c'est un réglage d'Apache et de PHP.
Pour Apache dans le httpd.conf ajoute AcceptPathInfo On
Pour PHP dans le php.ini décommente ou ajoute cgi.fix_pathinfo=1
Si tu es sur un mutualisé active PHP 5.3"
Merci pour ta réponse rapide, mais, je ne sais pas ou placer ces ajouts dans les fichiers... Merci !
Pour le php.ini, fais une recherche sur cgi.fix_pathinfo et tu devrais trouver un paragraphe qui lui est destiné. Fais le remplacement suivant :
;cgi.fix_pathinfo=0 //avant
cgi.fix_pathinfo=1 //apres
Pour le httpd.conf (je ne suis pas sûr de moi pour cette partie), fais une recherche sur AddType application/x-httpd-php puis ajoute
AcceptPathInfo On
Moi c'est pareil et en modifiant cela rien n'a changer.
Donc si quelqu'un est dans le même cas j'ai trouver une solution.J'ai utiliser REQUEST_URI et BASE_URL pour récuperer le chemin de l'utilisateur.
<?php
$req = $_SERVER'REQUEST_URI'];
$req = str_replace(BASE_URL , "" , $req );
?>
Voila en espérant que sa aide quelqu'un ^^
Salut! Juste attirer votre attention c'est pas $_SERVER'SCRIPT_NAME'] mais plutot $_SERVER['SCRIPT_NAME']
@Silvère stOne +1, personne ne l'a vu ? Alors que c'est la première chose qui m'a sautée aux yeux !! Sérieusement les gars c'est grave là...