Avatar billede neonman Nybegynder
15. august 2005 - 09:16 Der er 47 kommentarer og
1 løsning

HTTP_REFERER funger underligt hvorfor

Sider her med det her del i min code $_SERVER["HTTP_REFERER"] det er dog i et javascript :( men det henter dog kun den side som stor i min URL lige som den tager fra den side hvor mit javascript er smidt ind i :( det er ikke så heldigt...

nogen der ved hvad der er galt da jeg gerne sku ha fat i google, yahoo og jubii links til at måle noget statestik med... :)
Avatar billede jakobdo Ekspert
15. august 2005 - 09:58 #1
Kan du ikke bruge en midlertidig variabel?
Så du har noget kode i din php som laver:
$referer = $_SERVER['HTTP_REFERER'];
og i dit javascript...
<script>
side = <? echo $referer ?> osv...
Avatar billede neonman Nybegynder
15. august 2005 - 10:31 #2
:( nermlig det jeg gør og det fejler.... :( hvad kan der mon være galt :S
Avatar billede jakobdo Ekspert
15. august 2005 - 10:35 #3
Kan man finde din side på yahoo?
Hvis ja, hvad hvis du laver en index.php med indholdet:
<?
echo $_SERVER['HTTP_REFERER'];
?>
Hvad skrives der så ud?
Avatar billede neonman Nybegynder
15. august 2005 - 11:15 #4
så skriver den ( http://www.google.dk/search?hl=da&q=neonman.dk&meta= ) men hvis jeg skriver det inde i mit javascript kommer mit eget site bare fram :(
Avatar billede jakobdo Ekspert
15. august 2005 - 11:21 #5
Må jeg se dit javascript?
Du har lavet noget i stil med dette:
$referer = $_SERVER['HTTP_REFERER'];
og i dit javascript...
<script>
side = <? echo $referer; ?> osv...
og ikke:
$referer = $_SERVER['HTTP_REFERER'];
og i dit javascript...
<script>
side = <? echo $_SERVER['HTTP_REFERER']; ?> osv...
Avatar billede neonman Nybegynder
15. august 2005 - 12:14 #6
$LastURL = $_SERVER["HTTP_REFERER"];

document.write('Last url: <?=$LastURL?><br />');
Avatar billede jakobdo Ekspert
15. august 2005 - 13:26 #7
Og du kalder den side på din første side?
Altså den side man smides til direkte fra google, yahoo eller jubii?
Avatar billede neonman Nybegynder
17. august 2005 - 08:15 #8
nej kalder den først inde i javascriptet... mit javascript er jo mere end bare 2 linjere.... men den tager jo kun selve mit domain :( piv
Avatar billede jakobdo Ekspert
17. august 2005 - 09:46 #9
Det burde altså virke...
Avatar billede neonman Nybegynder
17. august 2005 - 09:52 #10
:( jamen gør det ikke.... fanme underligt.... kan man ikke gøre det på en andne måde evt ?.... :( for det virker ikke.... altså min Javascript kode ser sådan her ud

<script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ID=1">
</script>

og rasten ser sådan her ud

<?
session_start();
include("include/mysql.php");

$NowDate = date('d-m-Y');

# Tjecker omkring der skal oprette en dato iden vi går i gang med scriptet...
$res_date_tjeck = mysql_query("SELECT * FROM visninger WHERE date = '". $NowDate ."'");
$row_date_tjeck = mysql_fetch_array($res_date_tjeck);

if ($row_date_tjeck['id'] == false)
{
    mysql_query("INSERT INTO visninger SET date ='". $NowDate ."', siteid = '". $_GET['ID'] ."'");
}   

# Henter vores informartion til hele statestiken så vi kan update osv...
$res = mysql_query("SELECT visninger.id AS id, visninger.hits AS Hits, visninger.unike AS Unike, visninger.page_view AS PageView FROM user, visninger WHERE user.id = '". $_GET['ID'] ."' AND visninger.siteid = user.id AND visninger.date = '". $NowDate ."'") or die(mysql_error());
$row = mysql_fetch_array($res) or die(mysql_error());

$MyPage = getenv("HTTP_REFERER");

$res_page = mysql_query("SELECT * FROM PageView WHERE SiteURL = '". $MyPage ."'");
$row_page = mysql_fetch_array($res_page);

if ($row_page['id'] == true)
{
    $test = "findes";
}
else
{
    mysql_query("INSERT INTO PageView SET SiteURL = '". $MyPage ."', SiteHits = '1', SiteID = '". $_GET['ID'] ."'");
    $test = "findes ikke";
}

$time_now = time() - 10800;
$ip    = getenv("REMOTE_ADDR");

$res_ip = mysql_query("SELECT * FROM ip_tjeck WHERE siteid = '". $_GET['ID'] ."' AND ip = '". $ip ."' AND lasttime >= '". $time_now ."' ORDER BY id DESC");
$row_ip = mysql_fetch_array($res_ip);

$SQL_Update_Str = "";

$StartHits2 = $_SESSION['StatsHits'];

## Hits tjeck
if ($_SESSION['StatsHits'] != "Nej")
{
    $StatsHits = $row['Hits'] + 1;
    $SQL_Update_Str .= "hits = '". $StatsHits ."', ";

    $Browser_Type    = $_SERVER['HTTP_USER_AGENT'];;
   
    if (strpos($Browser_Type, 'MSIE'))
        $Browser = "Internet Explorer";
   
    elseif (strpos($Browser_Type, 'Firefox'))
        $Browser = "Firefox";
   
    else
        $Browser = "Anden type brower";

    $res_browser_type = mysql_query("SELECT * FROM browser_type WHERE userid = '". $_GET['ID'] ."' AND browser = '". $Browser ."'");
    $row_browser_type = mysql_fetch_array($res_browser_type);

    if ($row_browser_type['id'] == true)
    {
        $BrowserHits = $row_browser_type['hits'] + 1;
        mysql_query("UPDATE browser_type SET hits = '". $BrowserHits ."' WHERE id = '". $row_browser_type['id'] ."'");
    }
    else
    {
        mysql_query("INSERT INTO browser_type SET browser ='". $Browser ."', userid = '". $_GET['ID'] ."'");
    }

    $_SESSION['StatsHits'] = "Nej";
}

## Unike tjeck
if ($row_ip['id'] == false)
{
    $StatsUnike = $row['Unike'] + 1;
    $SQL_Update_Str .= "unike = '". $StatsUnike ."', ";
    mysql_query("INSERT INTO ip_tjeck SET ip = '". $ip ."', siteid = '". $_GET['ID'] ."', lasttime = '". time() ."'");
}

## Sidevisninger
$PageView = $row['PageView'] + 1;
$SQL_Update_Str .= "page_view = '". $PageView ."'";

mysql_query("UPDATE visninger SET ". $SQL_Update_Str ." WHERE id = '". $row['id'] ."'");

$LastURL = $_SERVER["HTTP_REFERER"];

/*
if ($_SESSION['TotalInformartion'] != "Updatet")
{
    $LastURL = $_SERVER['HTTP_REFERRER'];
    $Explode = explode(".",$LastURL);
   
    if (strtolower($Explode[1]) == strtolower("google"))
    {
        $row_lasturl = mysql_query("SELECT * FROM soge_maskiner WHERE sogeord = '".  ."'");
    }
}
*/

$url = $LastURL;
$arr = parse_url( $url );
parse_str( $arr['query'], $vars );
?>

document.write('Hits: <?=$row['Hits']?><br />');
document.write('Unike: <?=$row['Unike']?><br />');
document.write('Visninger: <?=$row['PageView']?><br />');
document.write('Session: <?=$StartHits2?><br />');
document.write('Done: <?=$time_now?><br /><br />');
document.write('Last url: <?=$LastURL?><br />');
document.write('Google: <?=$vars['q']?><br />');
document.write('Jubii: <?=$vars['query']?><br />');
document.write('Yahoo: <?=$vars['p']?><br /><br />');
document.write('Browser: <?=$Browser?><br />');

<?
mysql_close();
?>
Avatar billede jakobdo Ekspert
17. august 2005 - 09:56 #11
Hvis du kalder siden sådan her: <script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ID=1">
</script>
Og inde i linket: stats_link.php bruger du så: HTTP_REFERER, så vil det ikke virke.
Avatar billede neonman Nybegynder
17. august 2005 - 09:59 #12
:( er det jeg gør..... hvordan kan jeg få det til at funger så ?.... fordi skal bruge det til min statestik :(
Avatar billede Slettet bruger
17. august 2005 - 10:00 #13
Så vil $_SERVER['HTTP_REFERER'] vel være den side du er på, da den bliver "hentet" gennem http - og derved er javascript-sidens referer.
Avatar billede Slettet bruger
17. august 2005 - 10:01 #14
neonman du kan inkludere dit javsascript via require();, så virker det.
Avatar billede Slettet bruger
17. august 2005 - 10:02 #15
Det er det samme som at skrive javascriptet direkte ind i dit html-dokument, men der er ikke andet du kan gøre, hvis du vil gøre brug af php's $_SERVER-variabler.
Avatar billede neonman Nybegynder
17. august 2005 - 10:02 #16
hmmm include mit javascript via require ? hvordan mener du :s er lost...
Avatar billede Slettet bruger
17. august 2005 - 10:04 #17
I stedet for:

<script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ID=1">
</script>



<script type="text/javascript">
<?
require('http://127.0.0.1/stats/stats_link.php?ID=1');
?>
</script>

Jeg bliver nødt til at smutte nu. Jeg håber det virker
Avatar billede neonman Nybegynder
17. august 2005 - 10:05 #18
wicez > det SKAL ikke være en server variable :) bare sådan jeg får af vide hvor brugeren var sidt... fordi skal jo bruge det til statestik omkring hvor besøgen kommer fra osv.... :)
Avatar billede neonman Nybegynder
17. august 2005 - 10:07 #19
wicez > jamen problmert er det SKAL virke på .html sider.... og ikke kun .php også nogen af dem skal være .asp sider derfor det er vigtig jeg kan få fat i det...
Avatar billede neonman Nybegynder
17. august 2005 - 13:02 #20
Har nu smidt den op på de 200 for at se om der er nogen der kan få løst det her skide problem for mig :( det kan ikke passe det er umuligt... håber noge nkan hjælpe mig omkring det her problem...
Avatar billede jakobdo Ekspert
17. august 2005 - 13:15 #21
Du kunne jo ændre sit script fra:
<script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ID=1">
</script>
til:
$ref = $_SERVER['HTTP_REFERER'];
<script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ref=$ref">
</script>
Avatar billede neonman Nybegynder
17. august 2005 - 13:24 #22
jakobdo > hjælper jo ikke... hvis det er at serveren så bliver ASP, Ren HTML eller andet :) skal være sådan de andre bare kan smide statesen ind... :(
Avatar billede jakobdo Ekspert
17. august 2005 - 13:54 #23
Så skal du finde et javascript som kan levere referer.
Det du prøver der vil ikke virke.
Avatar billede neonman Nybegynder
17. august 2005 - 13:59 #24
:( pist og lort.... kan du skaffe sådan et javascript der kan gøre det eller ?....
Avatar billede Slettet bruger
17. august 2005 - 15:43 #25
Du kan give så mange point du vil, og smide spørgsmålet i præcis dé kategorier du har lyst til, men hvis du vil have det til at virke med html, javascript, asp og php.. Hvorfor vælger du så php, i stedet for at stille dit spørgsmål i javascript, hvor der er en lille chance for at du kan få hjælp..

Det kan i hvert fald ikke lade sig gøre i php, hvis php ikke er aktiveret eller installeret på serveren!
Avatar billede jakobdo Ekspert
17. august 2005 - 16:02 #26
Avatar billede Slettet bruger
17. august 2005 - 16:39 #27
Referer er jo heller ikke godt nok, da han vil have refereren før sidste referer..

Du vil jo have fat i history.go(-2);
Avatar billede jakobdo Ekspert
17. august 2005 - 16:41 #28
Men med javascript referer, kunne han jo lave sit link ala:
<script type="text/javascript" src="http://127.0.0.1/stats/stats_link.php?ref=DINREF...">
</script>
Avatar billede Slettet bruger
17. august 2005 - 17:10 #29
Ahh ja. Det er naturligvis en mulighed.
Avatar billede jakobdo Ekspert
17. august 2005 - 20:21 #30
Dog har jeg ikke med success kunne få: document.referrer til at virke.
Avatar billede Slettet bruger
17. august 2005 - 20:37 #31
se om det ikke er :

document.referer
Avatar billede jakobdo Ekspert
17. august 2005 - 20:50 #32
Jeg får undefined.

Jeg har testet:
<html>
<head>
<title>Test.html</title>
</head>
<body>
<a href="ref.html">Test</a>
</body>
</html>

<html>
<head>
<title>Test</title>
<script>
alert(document.referer)
</script>
</head>
<body>
</body>
</html>
Avatar billede Slettet bruger
17. august 2005 - 21:19 #33
Der er åbenbart også andre med det problem: http://www.webmasterworld.com/forum89/1933.htm

Det ser ud til, at det ikke er en egentlig funktion (eller hvad det hedder :o))
Avatar billede jakobdo Ekspert
17. august 2005 - 21:28 #34
Den side kan jeg ikke se!
Misbrug fra min udbyder! :o(
Eller også er det kun adgang for members!
Avatar billede Slettet bruger
17. august 2005 - 21:54 #35
Nu kan jeg heller ikke se den :S

Men jeg kunnne se den da jeg kom fra google.. Sikkert en fejl i deres sikkerhed:

Prøv at tage det øverste link herfra:

http://www.google.dk/search?q=document.referer+javascript&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:da-DK:official
Avatar billede jakobdo Ekspert
17. august 2005 - 21:57 #36
Avatar billede Slettet bruger
18. august 2005 - 16:27 #37
not good referrer
Avatar billede Slettet bruger
18. august 2005 - 16:28 #38
Men hvis jeg går tilbage, og klikker ind på siden fra http://www.sam-i-am.com/work/sandbox/javascript/

Siger den "good referrer"
Avatar billede Slettet bruger
18. august 2005 - 16:28 #39
Men han bruger også "document.referrer".
Avatar billede jakobdo Ekspert
18. august 2005 - 20:06 #40
Evt må du lave som krav at det køres på php server. Basta! :o)
Avatar billede Slettet bruger
18. august 2005 - 20:25 #41
Som taget ud af min mund ;o)
Avatar billede neonman Nybegynder
22. august 2005 - 09:01 #42
ja men så er ens statestik sytem jo ikke en skid vær :).... og ikke alle vores kunder køre med PHP nogen af dem køre ASP og ren HTML.... :)
Avatar billede jakobdo Ekspert
22. august 2005 - 09:16 #43
Så må du jo lave noget som virker med javascript...
Eller vbscript.
Avatar billede neonman Nybegynder
22. august 2005 - 09:46 #44
hmm vbscript kan jeg jo ikke bruge i PHP :s.... og det skal være noget javascript så :s
Avatar billede jakobdo Ekspert
22. august 2005 - 09:49 #45
Jeg mente jscript.
Men ja, du skal lave det i javascript, og så smide det via side.php?ref=google.com .f.eks.
Avatar billede neonman Nybegynder
22. august 2005 - 10:03 #46
hmmm er ik helt med på hvad du menere :S.....
Avatar billede jakobdo Ekspert
22. august 2005 - 10:19 #47
Det du ønsker kan ikke laves i php, så opret dit spørgsmål i Javascript.
Avatar billede neonman Nybegynder
22. august 2005 - 10:32 #48
okay... prøver så og håber på bædre held der fra... men tak for hjælpen alle sammen men mit spg var detsværre ikke løst :( så lukker og oprettet spget over i javascript afdelingen..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester