Tutorial: Referrer-System in PHP

Mai 3rd, 2010 von Felix G.

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:

  • PHP
  • MYSQL

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!

Geschrieben in Programmieren | 1 Kommentar »

Systemdienste Auslesen (C++)

Dezember 30th, 2009 von Manu

Dienste die auf einem System laufen auslesen.
Das Beispielprogramm wurde mithilfe des Borland Developer Studio 2006 geschrieben.

Benutzte Funktionen:
OpenSCManager()
EnumServicesStatusEx()

Form1



Download

Geschrieben in Programmieren | Keine Kommentare »