Bonjour, après avoir posé plusieurs fois ma question, n'ayant eu aucune réponse, je la clarifie un peu mieux.

dans le système, qd on fait appel à BASE_URL (exemple dans la function webroot du Router, il me plante car en adresse, il manque localhost au début ou www.monsite.fr donc le $_SERVER'HTTP_HOST'];

dans mon Router.php, pour que çà fonctionne, j'avais enlevé dans la fuction url, le BASE_URL (qui vaut '/' chez moi) et donc, pour que çà fonctionne, j'ai changé:
return BASE_URL.'/'.$url; PAR return '/'.$url;
et çà fonctionne qd je fais çà

et je ne comprends pas la différence avec le Tuto; pourquoi çà fonctionne chez tout le monde !! apparemment

j'ai retiré BASE_URL aussi dans webroot et çà fctionne; par contre, je ne sais vraiment pas pourquoi il utilise BASE_URL dans le tuto.

5 réponses


Salut, si tu fais un var_dump($_SERVER); ça donnera quoi ?

marc9524
Auteur

salut Reda, le chieur de retour :)

Merci pour tes réponses précédentes. :)

En plaçant var_dump($_SERVER); dans la fonction url de la class Router, çà me donne :

Forbidden

You don't have permission to access /<pre class='xdebug-var-dump' dir='ltr'><b>array</b> 'REDIRECT_REDIRECT_STATUS' <font color=' on this server.

non, tu remplaces pas le var_dump dans la fonction url.
tu mets le var_dump($_SERVER) a la fin de ton index.php, et dis moi ce que ça donne ;)

marc9524
Auteur

array
'REDIRECT_STATUS' => string '200' (length=3)
'HTTP_HOST' => string 'localhost' (length=9)
'HTTP_CONNECTION' => string 'keep-alive' (length=10)
'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4' (length=106)
'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
'HTTP_REFERER' => string 'http://localhost/' (length=17)
'HTTP_ACCEPT_ENCODING' => string 'gzip,deflate,sdch' (length=17)
'HTTP_ACCEPT_LANGUAGE' => string 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' (length=35)
'HTTP_ACCEPT_CHARSET' => string 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' (length=30)
'HTTP_COOKIE' => string '__atuvc=292%7C38%2C324%7C39%2C1249%7C40%2C52%7C41; PHPSESSID=spushovf2l0qp2ircdngqssd50' (length=87)
'PATH' => string 'C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\marc\AppData\Local\Smartbar\Application\;' (length=150)
'SystemRoot' => string 'C:\Windows' (length=10)
'COMSPEC' => string 'C:\Windows\system32\cmd.exe' (length=27)
'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' (length=53)
'WINDIR' => string 'C:\Windows' (length=10)
'SERVER_SIGNATURE' => string '' (length=0)
'SERVER_SOFTWARE' => string 'Apache/2.2.21 (Win32) PHP/5.3.10' (length=32)
'SERVER_NAME' => string 'localhost' (length=9)
'SERVER_ADDR' => string '::1' (length=3)
'SERVER_PORT' => string '80' (length=2)
'REMOTE_ADDR' => string '::1' (length=3)
'DOCUMENT_ROOT' => string 'C:/wamp/www/' (length=12)
'SERVER_ADMIN' => string 'admin@localhost' (length=15)
'SCRIPT_FILENAME' => string 'C:/wamp/www/webroot/index.php' (length=29)
'REMOTE_PORT' => string '64052' (length=5)
'REDIRECT_URL' => string '/' (length=1)
'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
'REQUEST_METHOD' => string 'GET' (length=3)
'QUERY_STRING' => string '' (length=0)
'REQUEST_URI' => string '/' (length=1)
'SCRIPT_NAME' => string '/webroot/index.php' (length=18)
'PHP_SELF' => string '/webroot/index.php' (length=18)
'REQUEST_TIME' => int 1350600760

apparemment, Le $_SERVER'SCRIPT_NAME'] doit contenir au moins de dossier avant le index.php.
je propose de remplacer dans ton index.php

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

Par

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