You are not logged in.

  • Login

1

Friday, January 1st 2010, 3:08pm

Aktuelle URL herausfinden

Moin,

ich bin aktuell dabei eine Möglichkeit zu suchen an die aktuelle Url und zwar komplett ...

Sprich wenn ich auch der Seite http://url.tld/delete.html?id=x bin will ich als Rückgabe genau das haben und das muss überall klappen ...

Hatte das jetzt so dachte auch erst es geht scheinbar aber doch nicht ...

PHP Quellcode

1
2
3
4
5
6
7
8
9
function ucp_url(){
 
if(empty($_SERVER['REQUEST_URI']) == true){
return BASEURL.'ucp/dashboard.html';
}
 
return BASEURL.'ucp/'.substr(strrchr($_SERVER['REQUEST_URI'], "/"), 1);
 
}


Bekomme aber nur http://url.tld/ucp/ zurück ...

Bzw wenn ich das in der index.php mache geht es komischerweise nur wenn ich das in einer Unterseite mache (Also ich hab eine index.php und da werden dann die gewünschten Seiten rein geladen) bekomme ich halt eine falsche Rückgabe! oO

Foto: http://www.imagefire.net/view/b3333f8ce1c8.png

Ich habe mir schon einmal was einfallen lassen falls es keine Lösung für mein Problem gibt und zwar in die index.php so ne Funktion ala save_request_uri und dann drauf zugreifen dann müsste ich ja die richtige request_uri haben, sinnvoll?

This post has been edited 3 times, last edit by "Torsten" (Jan 1st 2010, 4:24pm)


2

Saturday, January 2nd 2010, 11:33am

Hi,


schau dir einfach mal den dump des Server-Arrays an.

PHP Quellcode

1
var_dump($_SERVER);


Damit solltest du schnell ans Ziel finden.

3

Saturday, January 2nd 2010, 5:19pm

Das einzige was sich auf diesem Weg herausfinden lässt ist das $_SERVER['REQUEST_URI'] unten einen anderen Wert hat wie oben. Ich habe jetzt aber eine Lösung erklären konnte mir aber noch keiner wie und wieso dieser Fehler auftritt ...

Lösung:

PHP Quellcode

1
2
3
4
5
6
$r_uri = $_SERVER['REQUEST_URI']; 
$pos = strrpos($r_uri,'/'); 
if($pos !== FALSE) 
   $r_uri = substr($r_uri,$pos+1); 
 
return BASEURL.'ucp/'.$r_uri;

4

Sunday, January 3rd 2010, 11:25am

naja, ohne Kenntnis, was BASEURL ist, können wir dir die Frage nicht zielführend beantworten.

Ich nutze generell folgende Konstanten:

PHP Quellcode

1
2
define('BASEDIR', dirname(__FILE__).'/');
define('BASEURL', 'http://'.$_SERVER['HTTP_HOST'].substr($_SERVER['SCRIPT_NAME'], 0, -1 * strlen(basename($_SERVER['SCRIPT_NAME']))));


Aber wenn du nur an die aktuelle URL mit GET Parametern kommen willst.

PHP Quellcode

1
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

5

Sunday, January 3rd 2010, 4:10pm

Wie gesagt Problem ist gelöst ...

BASEURL ist halt die URL der Applikation sprich zum Beispiel: http://localhost/jobs/xyz/

Social bookmarks