Zufallsbanner und URL synchron

Mit etwas Aufwand (und ein paar Einschränkungen) ist das schon umsetzbar. Beispiel:
PHP:
<?php
$banners = array(
  array('http://style.tutorials.de/v6/images/pro/23.02-320.png',
        'http://www.tutorials.de/forum/contests/355536-2d-3d-contest-mein-traumhaus-23-02-2010-22-03-2010-a.html'),
  array('http://style.tutorials.de/v6/images/pro/23.03-320.png',
        'http://www.tutorials.de/forum/news/356926-einladung-zum-xxl-workshop-day.html'),
);

$seed = crc32($_SERVER['HTTP_REFERER']);
srand($seed);
$id = rand(0, count($banners) - 1);
$banner = $banners[$id];

if ($_GET['do'] == 'img') {
  header('Location: ' . $banner[0]);
} else {
  header('Location: ' . $banner[1]);
}
?>
Einbindung dann über [img]http://example.com/signatur.php?do=img[/img]
Die Einschränkung ist halt, dass auf einer bestimmten Seite immer derselbe Banner angezeigt wird und sich dieser nicht mit jedem Aufruf ändert.

Grüße,
Matthias
Da bin ich jetzt aber schon zum frühen Nachmittag platt, wenn von Benutzern auszuführender PHP-Code ins Forum geladen (geschleust) werden kann :-(

Und was, wenn der Code schadhaft und böse ist?

Aber danke für die Aufklärung eines Ex-Admins auf tutorials.de ;)

mfg Maik
 
Da bin ich jetzt aber schon zum frühen Nachmittag platt, wenn von Benutzern auszuführender PHP-Code ins Forum geladen (geschleust) werden kann :-(

Und was, wenn der Code schadhaft und böse ist?
Der PHP-Code wird nicht auf dem Server des Forums ausgeführt. Das wär ja noch schöner :) Das Prinzip ist stattdessen, eine Abbildung von Referrer-URL zu einem Eintrag in der Banner-Tabelle aufzubauen. Wenn jetzt das Skript (über ein img-Tag) in ein Forum eingebunden wird, dann wird damit beim Laden der Seite das Skript ausgeführt (auf einem entfernten Server!), welches dann auf das entsprechende Bild weiterleitet. Klickt man auf den Link, wird wieder das Skript ausgeführt, das wieder den Referrer verwendet, um das richtige Banner rauszufischen. Diesmal wird aber auf die zugehörige URL verwiesen und nicht auf das Bild.

Grüße,
Matthias
 
Der PHP-Code wird nicht auf dem Server des Forums ausgeführt. Das wär ja noch schöner :) Das Prinzip ist stattdessen, eine Abbildung von Referrer-URL zu einem Eintrag in der Banner-Tabelle aufzubauen. Wenn jetzt das Skript (über ein img-Tag) in ein Forum eingebunden wird, dann wird damit beim Laden der Seite das Skript ausgeführt (auf einem entfernten Server!), welches dann auf das entsprechende Bild weiterleitet. Klickt man auf den Link, wird wieder das Skript ausgeführt, das wieder den Referrer verwendet, um das richtige Banner rauszufischen. Diesmal wird aber auf die zugehörige URL verwiesen und nicht auf das Bild.

Grüße,
Matthias
Dank dir, Matthias. Da hab ich eben dein Code-Beispiel mißverstanden :-( und bin beruhigt, dass Benutzer weiterhin keinen PHP-Code auf dem Server unseres Forums ausführen können :-)

mfg Maik
 
PHP:
$seed = crc32($_SERVER['HTTP_REFERER']);
srand($seed);
Da die random-Funktion nur Pseudo ist, ergibt sich aus dem Initalwert (der aus dem Referer erstellt wird) der quasi immer den gleichen "zufällige" erste Wert macht. Könnte man umgehen, indem Du den Randomwert -der herauskommt- irgendwo auf Deinem Host speicherst und dann wieder als $seed benutzt.

mfg chmee
 
Zurück