Du wolltest schon immer mal wissen, wie oft auf deinen Link auf der Website deines Linkpartners geklickt wurde?
Dann könnte folgendes Tutorial zur Erstellung eines simplen Referrer-Systems genau das richtige sein!
Benötigt wird:
Als erstes musst du in deiner Datenbank eine neue Tabelle erstellen.
Ich habe meine Tabelle “refs” genannt. Hier die SQL-Query zum einfügen der Tabelle in eurer Datenbank:
CREATE TABLE `refs` (`ID` int(255) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL,
`hits` int(255) NOT NULL,
PRIMARY KEY (`ID`))
Soweit so gut, nun geht es an das eigendliche Script:
Wir benötigen ein Script das den Referrer, welcher bei meinem Script über die URL übergeben wird, auswertet und in die Tabelle einträgt. (referrer.php)
<?php
$website = ''http://www.example.org''; // Gib hier deine WebsiteURL an
$cfg = array('db' => array('host' => ''localhost'', //Host, meist localhost
''user'' => ''root'', //Benutzername für Datenbank
''pass'' => 'PASSWORT', //Datenbankpasswort
''base'' => ''tutorials'' //Datenbankname
)
);
/* Mit der Datenbank verbinden */
$cfg['db'] = new mysqli($cfg['db']['host'],
$cfg['db']['user'],
$cfg['db']['pass'],
$cfg['db']['base']);
if(mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen:
'.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$db = $cfg['db']; // Variable $db für DB-Verbindung für spätere Querys deklariert
// Falls der Referrer-Parameter mit der URL übergeben wird
if(isset($_GET['ref']) && !empty($_GET['ref'])) {
// Übergebenen Referrer absichern (SQL-Injections verhindern)
$ref = mysql_real_escape_string(htmlspecialchars($_GET['ref']));
$query = 'SELECT `ID`, `hits` FROM `ref_refs` WHERE `url` = \''.$ref.'\' LIMIT 1';
$result = $db->query($query); // Query ausführen
if($result->num_rows) { // Falls diese URL bereits als Referrer existiert
$row = $result->fetch_assoc(); // Dem Array $row die Tabelleneinträge (ID, hits) zuteilen
$hits = ++$row['hits']; // Hits + 1
$update_query = ''UPDATE `ref_refs` SET `hits` = \''.$hits.'\' WHERE `url` = \''.$ref.\'';
$update = $db->query($update_query); // Hits aktualisieren
} else { // Falls Seite noch nicht in die Datenbank eingetragen wurde
$insert_query = 'INSERT INTO ref_refs (url, hits)
VALUES ("'.$ref.'", "1")';
$insert = $db->query($insert_query);
}
} else { // Falls kein Referrer übergeben wurde soll er auch nichts tun
}
// Nach Eintrag sofort auf Startseite deiner Website weiterleiten
header("Location: ".$website);
exit();
?>
WICHTIG: vergiss nicht die benötigten Daten zu ändern. Nun nochmal zur Erleuterung:
[...]$cfg = array('db' => array('host' => ''localhost'', //Host, meist localhost
'user' => 'root', //Benutzername für Datenbank
'pass' => 'PASSWORT', //Datenbankpasswort
'base' => 'tutorials' //Datenbankname
)
);
/* Mit der Datenbank verbinden */
$cfg['db'] = new mysqli($cfg['db']['host'],
$cfg['db']['user'],
$cfg['db']['pass'],
$cfg['db']['base']);
if(mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen:
'.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$db = $cfg['db']; // Variable $db für DB-Verbindung für spätere Querys deklariert
[...]
Dieser Teil verbindet dein Script mit der Datenbank, welche später für das Einfügen der Referrer benötigt wird.
// Übergebenen Referrer absichern (SQL-Injections verhindern)
$ref = mysql_real_escape_string(htmlspecialchars($_GET['ref']));
Wie hier der Kommentar schon beschreibt, wird mithilfe von mysql_real_escape_string() und htmlspecialchars() für die Sicherheit gesorgt.
// Nach Eintrag sofort auf Startseite weiterleiten
header("Location: ".$website);
exit();
Dieser Teil leitet nach dem Aufruf des Scripts direkt auf die am Anfang des Scripts angegebene Website weiter.
Dein Linkpartner muss nur noch den Link anpassen (z.B. example.org/referrer.php?ref=http://www.manusblog.de) und schwups funktioniert es.
Der Rest des Scripts sollte denke ich klar sein, falls nicht bitte einfach nen’ Kommentar schreiben!