Werbeseite soll erscheinen (ip/cookie sperre 2 std.)

PC Freak

Erfahrenes Mitglied
Auf giga.de war es früher so, dass nach alle 2 std. und beim ersten besuch eine werbeseite erschienen ist und man erst per klick auf den da drunter stehenden button zu der seite kamm, auf der man eigentlich wollte.

kann man soetwas programmieren ? was brauch man dazu ? htacess, php ?

oder kennt ihr vielleicht schon so ein script, oder habt sogar bereits so ein Script ?

Vielen Dank
 
Weiss jetzt nicht was htaccess helfen sollte.
Aber am sinnvollsten einen Cookie, in dem du die Starzeit der letztenm EInblendung speicherst, von welchem Serverseitigen Script auch immer wird dieser ausglesen.
Wenn die Zeitdifferenz den gwünschten krietiren entspricht wird der User eben zwischendrin eine werbeseite eingeblendet mit einem Link auf den Content.
 
hab jetzt mal was gecodet allerdings kommt folgende fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web265/html/artikel.php:12) in /home/www/web265/html/artikel.php on line 851

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web265/html/artikel.php:12) in /home/www/web265/html/artikel.php on line 852

Was muss ich machen, damit diese verschwindet ?

Der Php code:
PHP:
<?php
   $gotopage = "http://www.meineurl.de" . getenv("SCRIPT_NAME") . "?" . getenv("QUERY_STRING");
   ob_start();
   // unterdrückt Header-Output-fehler
   $time = 2*60*60;
   // 2 Stunden
   
   if(!empty($_COOKIE['kleine_sperre'])) {
   	$gotopage; 
   } else {
   	echo header("Location: werbung.php");
   	setcookie("kleine_sperre","war da",time()+$time);
   }
   ?>

Wie soll die Werbeseite (werbung.php) auslesen, wo der user egtl hin wollte, so das er per klick auf nem button zu der seite kommt ?
 
Zuletzt bearbeitet:
Statt
PHP:
echo header(....);
Solltest du mal
PHP:
header(....);
probieren! Also ohne "echo";

greetz
daddz
 
naja habs nochmal anders gemacht:

PHP:
<?php
 $gotopage = "http://www.meineurl.de" . getenv("SCRIPT_NAME") . "?" . getenv("QUERY_STRING");
    ob_start();
    // unterdrückt Header-Output-fehler
 
 $file = "ip_data.dat";
 $duration = 30*60; // 30 Minuten
 
 $lines = file($file);
 foreach($lines as $line) {
 	list($ip, $time) = explode("µ", $line);
 	if($time > time()-$duration) {
 		$ips[$ip] = trim($time);
 	}
 }
 $ip = $_SERVER['REMOTE_ADDR'];
 if(@array_key_exists($ip, $ips)) {
 	if($ips[$ip] > time()-$duration) {
 		// TRUE
 		$ips[$ip] = time();
 		$was_here = TRUE;
 	}
 } else {
 	$ips[$ip] = time();
 	$was_here = FALSE;
 }
 $fp = fopen($file, "w");
 foreach($ips as $ip=>$time) {
 	fputs($fp, $ip."µ".$time."\n");
 }
 fclose($fp);
 
 if($was_here) {
 	   $gotopage;
 } else {
 	   echo"<script language=\"JavaScript\">window.location.replace('werbung.php');</script>";
 }
 ?>

klappt auch

Der User wird also am Anfang und danach erst alle 2 stunden wieder zur Werbeseite geleitet. Wie kann ich in der Werbeseite einen Link einbauen, mit der aufschrift "Weiter zur gewünschten Seite" so das der user per klick auf diesem Link zur seite weitergeleitet wird, zu die er eigentlich wolte ? irgendwie muss das script ja auslesen zu welcher seite der user eigentlich wollte ...

Vielen Dank
 
Hi!

Übergib die Seiten-URL der eigentlich aufzurufenden Seite doch per GET. Allerdings solltest du diese URL urlencoden:
header('Location: /werbung.php?goto='.urlencode('eigentliche_seite.html'));

Mamphil
 
habs jz einfach ganz anders gelöst ... entweder wird die werbung.php includet oder das artikel script ... somit brauch ich kein java script und ich hab kein problem mit "header already sent"

zudem kann ich so auch direkt die adresse aus der adressleiste auslesen, zu die der user eigentlich wollte

klappt super ;D
 

Neue Beiträge

Zurück