Just nu i M3-nätverket
Jump to content

PHP---hämta adressen


BorO

Recommended Posts

Ja det går, det du gör är att använda dig av superglobalen $_SERVER.

 

I superglobalen finns någonting som heter REQUEST_URI, så om du skriver såhär får du ut URIn till det dokument du står på, med request variabler o allt.

 

$_SERVER['REQUEST_URI'];

 

Vill du även ha med servernamnet får du använda dig av en annan variabel i superglobalen, nämligen SERVER_NAME:

 

$_SERVER['SERVER_NAME'];

 

Läs mer om detta här: http://se.php.net/manual/en/reserved.variables.php

 

Link to comment
Share on other sites

Tack för svaret!

Det verkar vara det jag behöver!

 

Men.....jag försökte få igång och fick fel:

Notice: Undefined index: REQUEST_URI in

 

Såg sen att Global_variabler ska vara på i config filen, men det varde inte hos mig så jag slog på dem.......

Det hjälpte inte.....

 

Har du nån erfarenhet av detta?

 

Link to comment
Share on other sites

MM gött, det var ju det jag satt å fundera på, slapp jag kolla upp det...

 

/Henrik

 

---------------------

Snart är jag ikapp dig Weyland...

 

Link to comment
Share on other sites

När du hade ändrat i php.ini filen, startade du då om webbservern? Det måste man nämligen. Men, register_globals (vilket jag antar att du menade) spelar inte någon roll. Den ska helst vara avstängd (säkerheten först).

 

Se även till att du har en relativt ny version av PHP (> 4.1.x).

 

Gör ett skript som heter info.php och lägg fäljande i det:

<?php phpinfo(); ?>

Öppna det sedan i webbläsaren, och kolla din version.

 

Om du har en gammal version och inte vill uppgradera kommer du ändå åt denna variabel genom antingen $REQUEST_URI eller $HTTP_SERVER_VARS["REQUEST_URI"]. Om du försöker komma åt den inuti en funktion, använd då $GLOBALS["REQUEST_URI"] eller $GLOBALS["HTTP_SERVER_VARS"]["REQUEST_URI"].

 

Link to comment
Share on other sites

Tack för svaret Cariad!!!!

 

Jag har inte fått igång det än, men

$_SERVER['SERVER_NAME']; funkar......

$_SERVER['REQUEST_URI']; funkar inte.....

 

varför????

 

 

Link to comment
Share on other sites

Är det här fel?

 

$url=$_SERVER['REQUEST_URI'];

 

Får följande fel:

 

Notice: Undefined index: REQUEST_URI in sidan.php on line 276

 

Link to comment
Share on other sites

Såg att jag har PHP version 4.2.2.....

 

På sidan..phpinfo(); listas massa saker....

scrollar man ner kommer man till $_SERVER variablerna...finns månfa men $_SERVER["REQUEST_URI"] finns inte.......

 

Borde den inte visas om det fanns?

 

 

Link to comment
Share on other sites

Av någon konstig anledning sätter inte PHP den variabeln för dig. Men du kan ju komma runt det genom att göra såhär (ha med if-satsen för säkerhets skull, om den en dag helt magiskt skulle vara satt):

 

if (!isset($_SERVER["REQUEST_URI"])) {
$_SERVER["REQUEST_URI"] = $_SERVER["SCRIPT_NAME"];
if ($_SERVER["QUERY_STRING"]) $_SERVER["REQUEST_URI"] .= "?" . $_SERVER["QUERY_STRING"];
}

 

Link to comment
Share on other sites

Kommer detta att funka??

 

$_SERVER["SCRIPT_NAME"]; är inte det bara filen som används?

 

jag behöver liksom hela adressen.....

 

Tack för att du hjälper mig!!

 

Link to comment
Share on other sites

Det är klart att det kommer funka, jag kollade ju på din phpinfo()-sida.

 

$_SERVER["SCRIPT_NAME"] ger skriptets namn och mapp, relativt till URIn.

$_SERVER["SCRIPT_FILENAME"] (eller $_SERVER["PATH_TRANSLATED"] på din Win-maskin) ger skriptets namn och mapp, relativt till serverns filstruktur.

 

Om du vill ha serverns namn först, är det ju bara att:

$url = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];

Efter koden i föregående inlägg.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...