Zitat:
Zitat von Stadi1971
Danke, hab´s bereits gefunden!
$aktuelleseite = $_SERVER['REQUEST_URI']
|
1. trenne Dich bitte von $_SERVER['PHO_SELF'] und verwende grundsätzlich stattdessen $_SERVER['SCRIPT_NAME']
Grund: PHP klebt den Inhalt von PATH_INFO an PHP_SELF hinten dran.
2. $_SERVER bietet mehr Luxus.
Code:
1+2
http://mod.php.developer.vc/info/index.php?var=val normaler GET URL:
_SERVER["SERVER_NAME"] mod.php.developer.vc
_SERVER["SERVER_ADDR"] 85.214.212.7
_SERVER["SERVER_PORT"] 80
...
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["REQUEST_METHOD"] GET
_SERVER["QUERY_STRING"] var=val
_SERVER["REQUEST_URI"] /info/index.php?var=val
_SERVER["SCRIPT_NAME"] /info/index.php
_SERVER["PHP_SELF"] /info/index.php
Code:
1+2 mit path_info
http://mod.php.developer.vc/info/index.php/var=val
keine Änderung
_SERVER["SERVER_NAME"] mod.php.developer.vc
_SERVER["SERVER_ADDR"] 85.214.212.7
_SERVER["SERVER_PORT"] 80
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["REQUEST_METHOD"] GET
###########################
... ab hier kann es brenzlig werden:
###########################
_SERVER["QUERY_STRING"] no value # kein ?
_SERVER["REQUEST_URI"] /info/index.php/var=val
# _SERVER["SCRIPT_NAME"] . _SERVER["PATH_INFO"]
_SERVER["SCRIPT_NAME"] /info/index.php
# der Grund, weshalb man $_SERVER["SCRIPT_NAME"] verwenden muß
_SERVER["PATH_INFO"] /var=val
# enthält den Kram, den man an den eigentlichen Link drangeklebt hat
aber das
_SERVER["PHP_SELF"] /info/index.php/var=val
kann böse enden
Wenn Du den URL selber parsen möchtest, dann nimm _SERVER["SCRIPT_URI"]
http://mod.php.developer.vc/info/index.php/var=val
und die Funktion
http://de3.php.net/parse_url
PHP-Code:
$ergebnis = parse_url($_SERVER["SCRIPT_URI"]);
ergäbe:
Code:
Array
(
[scheme] => http
[host] => mod.php.developer.vc
[path] => /info/index.php/var=val
)
$ergebnis['path'] ergibt Scriptnamen incl. pathinfo
Bei einem URL mit Query String sieht es dann so aus:
Code:
Array
(
[scheme] => http
[host] => mod.php.developer.vc
[path] => /info/index.php
)
Du mußt also prüfen, ob $ergebnis['path'] == $_SERVER["REQUEST_URI"] ist.
Wenn gleich, dann kannste SCRIPT_NAME + _SERVER["REQUEST_URI"] = REQUEST_URI verwenden.
Wenn ungleich ist SCRIPT_NAME verwendbar. _SERVER["REQUEST_URI"] beinhaltet no value.
$_SERVER["PATH_INFO"] beinhaltet PATH_INFO -> /var=val