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
mysql_connect.php
referer.php
Einbinden in Seite
[COLOR="red"]Geht nicht, gibts nicht...[/COLOR]
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
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`) )
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() );
?>
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:
<?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>'; } ?>
[COLOR="red"]Geht nicht, gibts nicht...[/COLOR]
Kommentar