Statistieken laat de referer niet zien

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

03/03/2007 18:19:00
Quote Anchor link
Met dit script wordt de referer niet in de database gezet.
Hij zet er niets in dus ook geen NULL

Hoe komt dit?

De bezoeker drukt op een pagina op de link en wordt dan eerst naar de tussenpagina verwezen. (website.php)
Hier staat het volgende script op:

EDIT: typfout in script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
include("diversen.php");
//maak verbinding met de database

$connection = mysql_connect ($hostname,$user,$password) or die
( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");

$db = mysql_select_db ($database, $connection) or die
("Sorry, maar ik kan de database niet openen.");


if(isset($_GET['id']) && (is_numeric($_GET['id']))) {
$website_id = $_GET['id'];
}
else{
    $website_id = NULL;
}

// Gegevens voor een nieuw logboekitem verzamelen:
$datumtijd = date("Y-m-d H:i:s");                    // Huidige datum

if (isset($_SERVER['REQUEST_METHOD'])) {   // HTTP-methode
   $methode = $_SERVER['REQUEST_METHOD'];
}
else {
   $methode = NULL;
}

if (isset($_SERVER['PHP_SELF'])) {         // Huidige pagina
   $pagina = $_SERVER['PHP_SELF'];
}
else {
   $pagina = NULL;
}

if (isset($_SERVER['HTTP_REFERER'])) {    // Vorige pagina
   $referer = $_SERVER['HTTP_REFERER'];
}
else {
   $referer = NULL;
}

if (isset($_SERVER['REMOTE_ADDR'])) {      // Extern IP-adres
   $ip_adres = $_SERVER['REMOTE_ADDR'];
}
else {
   $ip_adres = NULL;
}

if (isset($_SERVER['HTTP_USER_AGENT'])) {  // Gebruikte browser
   $browser = $_SERVER['HTTP_USER_AGENT'];
}
else {
   $browser = NULL;
}





// MySQL-toevoegquery opstellen:
$sql  = "INSERT INTO `kliks` ";
$sql .= "(`id`, `datumtijd`, `website_id`, `methode`, `pagina`, `referer`, `adres`, `browser`) ";
$sql .= "VALUES ";
$sql .= "('', '$datumtijd', '$website_id', '$methode', '$pagina', '$referer', '$ip_adres', '$browser') ";
$sql .= "; ";
$res =mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows() >0){
$resultLink = mysql_query("SELECT website FROM links WHERE links_id = ".$_GET['id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
header("Location:".$rowLink->website);
exit("U wordt doorgestuurd");
}
else{
echo "er is iets misgegaan";
}



?>
Gewijzigd op 01/01/1970 01:00:00 door
 
PHP hulp

PHP hulp

20/11/2024 08:27:12
 
Ponzi

Ponzi

03/03/2007 18:43:00
Quote Anchor link
Er wordt pas een referer aangemaakt als je van de vorige site hebt 'doorgeklikt' naar de jouwe.

Verder heeft 'NULL' geen waarde en zal dus een leeg veld in je database worden aangemaakt ;-) .

Edit:
Referer is volgens mij ook maar met één R. Ik bedoel dus refeRer ipv refeRRer.
Gewijzigd op 01/01/1970 01:00:00 door Ponzi
 

03/03/2007 18:50:00
Quote Anchor link
Aha

Hoe kun je dan in de database zetten van welke pagina de bezoeker afkomt op mijn site. Bv. http://www.kijk-vergelijk.nl/?cat_id=2 (kinderen)

Dit gaat nu met dit stukje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (isset($_SERVER['PHP_SELF'])) {         // Huidige pagina
   $pagina = $_SERVER['PHP_SELF'];
}
else {
   $pagina = NULL;?>


Maar dan geeft hij de titel op van de tussenpagina (/website.php -> http://www.kijk-vergelijk.nl/website.php?id=307)
 
Ponzi

Ponzi

03/03/2007 18:56:00
Quote Anchor link
Bovenstaand stukje code geeft gewoon weer welke de huidige pagina is (die op je eigen server dus). Om te achterhalen waar je bezoekers vandaan komen moet je $_SERVER['REFERER'] gebruiken ;-) .

Of begrijp ik je vraag verkeerd?
 

03/03/2007 19:06:00
Quote Anchor link
Uhm, het is denk ik niet eenvoudig uit te leggen.

Of ik leg het niet goed uit, kan ook :)

Je komt op mijn website.
Je klikt op een link en wordt dan doorgestuurd naar een tussenpagina waar het bovenstaande script op staat. (website.php)

Daar staat oa. het volgende op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_SERVER['PHP_SELF'])) {         // Huidige pagina
   $pagina = $_SERVER['PHP_SELF'];
}
else {
   $pagina = NULL;
}

if (isset($_SERVER['HTTP_REFERER'])) {    // Vorige pagina
   $referer = $_SERVER['HTTP_REFERRER'];
}
else {
   $referer = NULL;
}

?>


Ik had dus gehoopt dat nu bij HTTP_REFERER in de database het adres zou staan van waar de bezoeker vandaan komt op mijn pagina.
Dus bv. van de pagina "kinderen".
Maar in de database staat helemaal niets.

PHP_SELF werkt wel goed. Daar staat in de database: /website.php (dit is dus de naam van de tussenpagina)
 
Scrptr

Scrptr

03/03/2007 19:10:00
Quote Anchor link
referer schrijf je met 1 r ;) dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_SERVER['PHP_SELF'])) {         // Huidige pagina
   $pagina = $_SERVER['PHP_SELF'];
}
else {
   $pagina = NULL;
}

if (isset($_SERVER['HTTP_REFERER'])) {    // Vorige pagina
   $referer = $_SERVER['HTTP_REFERER']; // Deze was nog niet aangepast
} else {
   $referer = NULL;
}

?>


Edit:
ponzi had het al gezegd, je was 1 R vergeten te veranderen
Gewijzigd op 01/01/1970 01:00:00 door Scrptr
 

03/03/2007 19:13:00
Quote Anchor link
Scrptr schreef op 03.03.2007 19:10:
referer schrijf je met 1 r ;) dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_SERVER['PHP_SELF'])) {         // Huidige pagina
   $pagina = $_SERVER['PHP_SELF'];
}
else {
   $pagina = NULL;
}

if (isset($_SERVER['HTTP_REFERER'])) {    // Vorige pagina
   $referer = $_SERVER['HTTP_REFERER']; // Deze was nog niet aangepast
} else {
   $referer = NULL;
}

?>


ja, dat heb ik in mijn script al aangepast maar ik had het hier uit gecopieerd en niet goed gewijzigd.

Maar het maakt geen verschil.
 
Martijn B

Martijn B

03/03/2007 19:16:00
Quote Anchor link
Ik neem aan dat er op de website wordt gewerkt met een sessie?

Als je daar nu eens de http referer in zet met bepaalde voorwaarden.

Als bijvoorbeeld de http referer leeg is dan veranderen je de sessie variabele niet. Zo heb je in iedergeval altijd een gevulde http referer
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 

03/03/2007 19:30:00
Quote Anchor link
hmm, daar kan ik niet zo mee uit de voeten.

Als ik dit doe: echo $HTTP_REFERER['HTTP_REFERER'];
laat hij alleen de letter "h" zien.
 
Martijn B

Martijn B

03/03/2007 19:33:00
Quote Anchor link
Dit zou beter moeten werken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

echo $_SERVER['HTTP_REFERER'];

?>


Maar wat ik bedoel is op iedere pagina of in een centraal script wat overal wordt ingevoegd (het database/config script ofzo...) het volgende zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if( !empty($_SERVER['HTTP_REFERER']) )
{

  $_SESSION['vorig_url'] = $_SERVER['HTTP_REFERER'];
}

?>


En dit uiteraard na de functie session_start().
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 

03/03/2007 20:25:00
Quote Anchor link
Er zat nog ergens een typfout en nu is het gelukt!

Bedankt voor alle hulp.
 
Ponzi

Ponzi

03/03/2007 21:40:00
Quote Anchor link
Graag gedaan :-) ...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.