WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Hur kan man hämta sidans url med php? (https://www.wn.se/forum/showthread.php?t=1039116)

johancmedia 2009-11-15 19:12

Hur kan man hämta sidans url med php?
 
Hej!
Hur kan man hämta sidans url med hjälp utav php?
sidan använder frames och jag vill att url:en ska visas i en av frames:en, jag vill inte att tex. om jag väljer att url:en ska visas i en frames som heter vanster.php att det då står att url:en är vanster.php utan om hela adressen är tex. http://www.domain.com?visa=om&nyhetsid=3903 så visas den adressen.

MVH
Johan

vco-systems 2009-11-15 20:52

Det här borde fungera (har inte testat):

I huvudsidan lägg till:

session_start();
$_SESSION["url"]="http://".$_SERVER[SERVER_NAME"].$_SERVER["REQUEST_URI"];

I din frame lägg till:

session_start();
echo $_SESSION["url"];

johancmedia 2009-11-15 22:31

Citat:

Ursprungligen postat av vco-systems (Inlägg 20331477)
Det här borde fungera (har inte testat):

I huvudsidan lägg till:

session_start();
$_SESSION["url"]="http://".$_SERVER[SERVER_NAME"].$_SERVER["REQUEST_URI"];

I din frame lägg till:

session_start();
echo $_SESSION["url"];

Jag har provat koden men jag får inte den att fungera.
Jag har även provat denna kod i en sida på mitt frame (som heter header.php).

PHP-kod:

<?php
$nyhetssida 
= (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
?>

Men då visas bara: http://www.domain.com/header.php, inte hela url:en från huvudsidan.

//Johan

Westman 2009-11-15 22:40

Använd javaskript istället?
Kod:

<script language="javascript">
        document.write(top.location.href);
</script>


marcuslind 2009-11-16 01:55

Använd dig av $_SERVER variabeln. I detta fall borde väl $_SERVER['REQUEST_URI'] fungera.

Du kan läsa mer om allt här http://www.php.net/manual/en/reserve...les.server.php
I kommentarerna finns även en tabell som skriver ut alla värden från $_SERVER. Kika på den så kanske du hittar någonting som passar dig.

johancmedia 2009-11-17 17:36

Citat:

Ursprungligen postat av marcuslind (Inlägg 20331505)
Använd dig av $_SERVER variabeln. I detta fall borde väl $_SERVER['REQUEST_URI'] fungera.

Du kan läsa mer om allt här http://www.php.net/manual/en/reserve...les.server.php
I kommentarerna finns även en tabell som skriver ut alla värden från $_SERVER. Kika på den så kanske du hittar någonting som passar dig.

Tack för hjälpen! jag lyckades få det att fungera med HTTP_REFERER

//Johan

qson 2009-11-17 17:45

Tänk bara på att om någon hittar till din sida från t.ex. Google så kommer HTTP_REFERER att vara http://www.google.com/search/någonting...
Sen är det inte heller alla webbläsare som skickar med HTTP_REFERER.

johancmedia 2009-11-17 18:46

Citat:

Ursprungligen postat av qson (Inlägg 20331770)
Tänk bara på att om någon hittar till din sida från t.ex. Google så kommer HTTP_REFERER att vara http://www.google.com/search/någonting...
Sen är det inte heller alla webbläsare som skickar med HTTP_REFERER.

Det är inte själva sidan som jag använder mig utav http_referer utan länkarna, så det är en väldigt liten andel besökare som kommer till länkarna via sökmotorer. Vilka webbläsare fungerar http_referer med? har du något tips på vad jag kan använda mig av istället?

//Johan

Hjorten 2009-11-17 20:09

Citat:

Ursprungligen postat av johancmedia (Inlägg 20331774)
Det är inte själva sidan som jag använder mig utav http_referer utan länkarna, så det är en väldigt liten andel besökare som kommer till länkarna via sökmotorer. Vilka webbläsare fungerar http_referer med? har du något tips på vad jag kan använda mig av istället?

//Johan

Jag har ett addon till Firefox som gör så att referern inte skickas.

johancmedia 2009-11-17 20:46

Citat:

Ursprungligen postat av Westman (Inlägg 20331497)
Använd javaskript istället?
Kod:

<script language="javascript">
        document.write(top.location.href);
</script>


Hur kan man få denna kod att fungera i en form input?
//Johan

Westman 2009-11-17 21:31

Citat:

Ursprungligen postat av johancmedia (Inlägg 20331789)
Hur kan man få denna kod att fungera i en form input?
//Johan

Du kan kalla upp kontrollen med något som liknar detta:
Citat:

document.getElementById('inputens id').Value = top.location.href;
Jag är lite rostig på javaskript men Google är din vän och kan hjälpa dig med syntaxen.

coldKingdom 2009-11-18 08:07

Kan det här fungera för dig?

PHP-kod:

<?php
$url 
= (!empty($_SERVER['HTTPS'])) ? "https://" "http://";
$url .= $_SERVER["HTTP_HOST"]."?".$_SERVER["QUERY_STRING"];

echo 
$url;
?>


johancmedia 2009-11-18 16:26

Citat:

Ursprungligen postat av Westman (Inlägg 20331800)
Du kan kalla upp kontrollen med något som liknar detta:


Jag är lite rostig på javaskript men Google är din vän och kan hjälpa dig med syntaxen.

Jag har provat både:
Kod:

<script language="javascript">
        document.getElementById('text').Value = top.location.href;
</script>

och:
Kod:

<script language="javascript">
          document.write(top.location.href);
          document.getElementById('text').Value = top.location.href;
</script>

Form inputen ser ut så här:
Kod:

<input name="text" type="text" id="text" />
Men inget visas i form inputen!

//Johan

johancmedia 2009-11-18 16:57

Citat:

Ursprungligen postat av coldKingdom (Inlägg 20331827)
Kan det här fungera för dig?

PHP-kod:

<?php
$url 
= (!empty($_SERVER['HTTPS'])) ? "https://" "http://";
$url .= $_SERVER["HTTP_HOST"]."?".$_SERVER["QUERY_STRING"];

echo 
$url;
?>


Denna kod fungerar inte, den visar bara http://www.domain.com/?

coldKingdom 2009-11-18 17:42

och det här? :)

PHP-kod:

<?php

$url 
= (!empty($_SERVER['HTTPS'])) ? "https://" "http://";
$url .= $_SERVER["HTTP_HOST"];

if (
$_GET):
    
$counter count($_GET);
    
$x 1;
    
$values "?";

    foreach (
$_GET as $q => $v):
        
$values .= $q."=".$v;
        
        if (
$x $counter):
            
$values .= "&";
        endif;
        
        
$x++;
    endforeach;
    
    
$url .= $values;
endif;

echo 
$url;

?>


johancmedia 2009-11-18 18:00

Citat:

Ursprungligen postat av coldKingdom (Inlägg 20331912)
och det här? :)

PHP-kod:

<?php

$url 
= (!empty($_SERVER['HTTPS'])) ? "https://" "http://";
$url .= $_SERVER["HTTP_HOST"];

if (
$_GET):
    
$counter count($_GET);
    
$x 1;
    
$values "?";

    foreach (
$_GET as $q => $v):
        
$values .= $q."=".$v;
        
        if (
$x $counter):
            
$values .= "&";
        endif;
        
        
$x++;
    endforeach;
    
    
$url .= $values;
endif;

echo 
$url;

?>


Den visar bara http://www.domain.com

Westman 2009-11-18 21:12

1 bifogad(e) fil(er)
Citat:

Ursprungligen postat av johancmedia (Inlägg 20331904)
Jag har provat både:
Kod:

<script language="javascript">
        document.getElementById('text').Value = top.location.href;
</script>

och:
Kod:

<script language="javascript">
          document.write(top.location.href);
          document.getElementById('text').Value = top.location.href;
</script>

Form inputen ser ut så här:
Kod:

<input name="text" type="text" id="text" />
Men inget visas i form inputen!

//Johan

Fungerar i mitt test.
Kod:

<form action="#" method="post">
        <input name="text" type="text" id="text" value="a" />
</form>
<script language="javascript">
        document.getElementById('text').value = "b";
</script>

Komplett med frames i zip-filen.

johancmedia 2009-11-21 13:55

Citat:

Ursprungligen postat av Westman (Inlägg 20331931)
Fungerar i mitt test.
Kod:

<form action="#" method="post">
        <input name="text" type="text" id="text" value="a" />
</form>
<script language="javascript">
        document.getElementById('text').value = "b";
</script>

Komplett med frames i zip-filen.

Har fått det att fungera, tack för hjälpen!

//Johan


Alla tider är GMT +2. Klockan är nu 16:38.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson