Referer Script optimieren

D

dee73

Guest
Hallo

ich habe ein Refererscript am laufen und möchte dies etwas optimieren. Allerdings habe nicht all viel Ahnung von PHP.
Vielleicht könnt ihr mir ja weiterhelfen.
Das Script liest aus von wo Besucher auf die Seite kommen, gibt diese in eine Datenbank und zeigt diese in einer Liste auf der Seite.
Das Script wurde bereits etwas abgeändert, so dass man Seiten ausschliessen kann (google....).

Nun möchte ich folgende Optimierung:

Es sollen nur Seiten gezählt werden welche von einer Startseite kommen (index.htm index.html index.php index.asp default.htm)
Die Liste könnte man noch erweitern (welche Startseiten habt ihr?)

SQL.txt
CODE CREATE TABLE `referers` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,

`website` VARCHAR(255) NOT NULL,

`hits` INT(11) UNSIGNED NOT NULL DEFAULT '0',


PRIMARY KEY (`id`)

)




mysql_connect.php

CODE <?php
DEFINE ('DB_USER', 'xxx');
DEFINE ('DB_PASSWORD', 'xxx');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'xxx');

$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error());

@mysql_select_db (DB_NAME) OR die('Could not select the database: ' . mysql_error() );
?>


referer.php

CODE <?php
require('mysql_connect.php');

// Find out or base pure referer.
$ref = $_SERVER['HTTP_REFERER'];

// Split our URL into bits.
$url = explode("/",$ref);

// Take the 3rd part of the url (the main site)
$surl = $url[2];

// Check to see if it contains the www. at the begining
$found = ereg('\www.',$surl);

if ($found) {

$url = $surl;

} else {

$url = 'www.'.$surl;

}

$query = "SELECT website, hits FROM referers WHERE website = '$url'";
$result = mysql_query($query);
$num = mysql_num_rows($result);

if ($num == 1) {
$site = mysql_fetch_array($result, MYSQL_ASSOC);

if ($site['website'] != 'www.') {

if ($site['website'] != 'www.lustverzeichnis.com/referer') {



$hits = $site['hits'] + 1;
$website = $site['website'];

$query = "UPDATE referers SET hits = $hits WHERE website = '$website'";
$result = mysql_query($query);

}
}

} else {

$urls = array(

// Ausgeschlossenen Seiten
"www.google.com", "google.com",
"www.yahoo.com", "yahoo.com",

);

if (!empty($surl) AND ($surl) != in_array($surl, $urls)) {
$query = "INSERT INTO referers (website, hits) VALUES ('$url', '1')";
$result = mysql_query($query);
}

}


?>


Code zur Anzeige

CODE <?php
require('referer/referer.php');



$query = "SELECT * FROM referers ORDER BY hits DESC LIMIT 20"; // Change the limit to the top XX that you want to show.
$result = mysql_query($query);

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

echo '
<table width="300" border="0" bordercolor="#000000" cellpadding="0" cellspacing="0">

<tr>
<td width="250"><span class="Stil3"><a target="_blank" href="http://'.$row['website'].'">'.$row['website'].'</a></td> </tr></table>';


}
?>
 
Zurück
Oben