Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 
 

[Code] Klicks auf Werbebanner zählen

Sie befinden sich: Home > Webmaster News

Wir wollen ein kleines Script entwickeln, mit dem wir Werbebanner auf unseren Seiten zufällig ausgeben lassen.

Werbende Firmen geben uns den Bannercode ja immer vor, der in der Regel so aussieht:

<a href='https://abc.com?code=xyz'><img src='https://abc.com/banner.jpg' width='468' height='60' border='0'></a>

Wir bauen uns zunächt eine kleine Tabelle "werb" mit folgendem Aufbau:

CREATE TABLE `werb` (
`lfd` int(10) unsigned NOT NULL auto_increment,
`aktiv` set('ja','nein') NOT NULL default '',
`banner` varchar(255) NOT NULL default '',
`link` varchar(255) NOT NULL default '',
`angezeigt` int(10) unsigned NOT NULL default '0',
`geklickt` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`lfd`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Und tragen unsere vorhandenen Bannercodes hier mit phpMyAdmin wie folgt ein:

`lfd` wird von MySql automatisch bei jedem neuen Eintrag immer um 1 erhöht. Hier muss nichts eingefügt werden.

Bei `aktiv` schalten wir die Banner, die angezeigt werden sollen auf 'ja'. Wenn wir einen Banner ausschließen bzw. deaktivieren möchten, dann stellen wir das Feld um auf 'nein'.

In das Feld `banner` kommt nur der Code zur Anzeige des Banners. In unserem Beispiel ist das:

'https://abc.com/banner.jpg' width='468' height='60' border='0' (erstes Hochkomma nicht vergessen)

Anmerkung: Falls unsere Datenfelder durch Usereingaben gefüllt würden, so würden wir den Code mit

mysql_real_escape_string() entschärfen. Da wir hier aber alle Eingaben selbst machen, lassen wir alles original stehen.

In das Feld `link` tragen wir nur den Link-Teil des Bannercodes ein:

https://abc.com?code=xyz

Die Felder `angezeigt` und `geklickt` sollen später zählen, wie oft der Banner auf unseren Seiten angezeigt wurde, und wie oft Besucher auf ihn geklickt haben. Unsere Werbepartner stellen uns ähnliche Auswertungen ja auch zur Verfügung.

Unsere Zahlen werden von den fremden Statistiken abweichen; die Unterschiede sollten aber nur gering sein.

Wenn unser geplantes Script den Bannercode aus der Datenbank holt, dann kann es zugleich den Zähler `angezeigt` hochzählen. Dieser Teil unserer Statistik bereitet also kein Problem. Wenn ein Besucher aber auf den Original-Link

https://abc.com?code=xyz

klickt, dann ist er von unserer Seite verschwunden und es gibt nichts zu zählen. Wir müssen den Link also auf ein Zählscript umleiten, den Klick zählen, und den Besucher dann zur Zielseite weiterleiten.

Wir nennen dies Zählscript "klick.php" und steuern es an mit dem Parameter nr. Der Aufruf für die Tabellenzeile mit lfd = 1 lautet dann also: klick.php?nr=1


<?php
// klick.php

// Zu MySql verbinden
include "connect.php"; 

// Übergebenen Parameter prüfen
$fehler = true;
if(!empty($_GET['nr'])) {
$lfd = $_GET[nr];
if(is_numeric($lfd) AND $lfd>0) $fehler = false; 
}

// Fehler festgestellt
if($fehler) die("Falscher Programmaufruf");

// Link ermitteln
$sql = "SELECT link FROM werb WHERE lfd = '$lfd'";
$erg=mysql_query($sql);

// Was gefunden?
if(!mysql_num_rows($erg)) {
die("Falscher Programmaufruf");
} 

$row=mysql_fetch_array($erg,MYSQL_ASSOC);
$link = $row['link'];

// Zählen
$upd = "UPDATE werb SET geklickt = geklickt + 1 WHERE lfd = '$lfd'";
mysql_query($upd) or die(mysql_error());

// Und tschüss

header("Location:$link");
?>

Wir können das Script durch Direktaufruf mit einer existierenden Zeilennummer testen und können uns nun an das Script machen, das einen Banner auswählt und anzeigt.

Wir speichern dies unter dem Namen "banner_anzeigen.php".


<?php
// banner_anzeigen.php
// Verbindung zur Datenbank muss schon hergestellt sein

// Zufälligen Banner auswählen
$sql = "SELECT lfd,banner FROM werb ORDER BY rand() LIMIT 1";
$erg=mysql_query($sql);
$row=mysql_fetch_array($erg,MYSQL_ASSOC);
$lfd = $row['lfd'];
$banner = $row['banner'];

// Zählen
$upd = "UPDATE werb SET angezeigt = angezeigt + 1 WHERE lfd = '$lfd'";
mysql_query($upd) or die(mysql_error());

// Bannercode ausgeben
$bannercode = "<a href='klick.php?nr=$lfd'><img src=$banner ></a>";
echo $bannercode;
?>

(Autor: WolfgangWolfgang), Eingetragen am 20.06.2008


Schreib ein Kommentar

Name
Mail
Webseite
Kommentar