CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos

|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |

28.07.2008, 20:46:03
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 17
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Das ist auch eine gute Lösung!
Ich bin aber aus Prinzip eher für serverseitige Lösungen, da Javascript auch deaktiviert werden kann. Inwieweit das hier ein Problem oder ein Hindernis darstellt, möchte ich gar nicht beurteilen, aber wenn man z.B. Statistiken machen möchte (wieviel % der Besucher benutzen einen Adblocker), sollten natürlich nicht gleich alle, die kein JS aktiviert haben, die Statistik verfälschen.
Naja, andererseits verfälschen bei mir alle Leute, die keine Bilder anzeigen bzw. laden lassen, die Statistik... Egal, shit happens :P
Ein Nachtrag zu meiner PHP-Lösung noch: Man kann natürlich den Pfad zu dem Skript, das das Bild ausgibt, noch so variieren wie das bei otr-files gemacht wird (noch ein paar Ordner mit "verdächtigen" Namen anlegen), um die Wahrscheinlichkeit, dass ein Werbeblocker anschlägt, zu erhöhen.
|

29.07.2008, 02:32:08
|
Junior Member
|
|
Registriert seit: Jul 2007
Beiträge: 225
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
dickes dankeschön an Elfram und CPA
ich hab beschlossen 2gleisig zu fahren und hab sowohl ne serverseitige als auch ne clientseitige Überprüfung eingebaut.
es gibt alelrdings noch 2 Problemchen:
1)(mit php bild)
ich hab nen bild mit imagecreate erstellt
PHP-Code:
<?php //./adverts/showads.php
session_start();
$_SESSION['werbeblocker'] = FALSE;
//HTTP-Header setzen
header('Content-type: image/png');
//Bild einlesen und ausgeben
$img = imagecreate(1,1);
$background_color = ImageColorAllocate($img,255,255,255);
imagepng($img);
?>
Problem: auch wenn das Bild geladenw ird so wird doch $_SESSION['werbeblocker'] nicht auf false gesetzt....
dem konnte ich entgegen wirken indem ich zusätzlich die bedingung !empty($_SESSION['werbeblcoker']} gesetzt habe
PHP-Code:
if(!empty($_SESSION['werbeblocker']) and $_SESSION['werbeblocker'] === TRUE)
{
$werbeblocker = TRUE;
}
das funzt dann auch wunderbar
(ich frag mich nur warum werbeblocker nicht auf false gesetzt wird)
bei der überprüfung mit javascript hab ich dann aber ein "richtiges" Problem
HTML-Code:
<!--header.tpl-->
<html>
<head>
{literal}
<script type="text/javascript" src="./banner_ads/ad.js"></script>
<script type="text/javascript">
try {
if (!werbeblocker)
{
zeigemeldung = true;
}
else
{
zeigemeldung = false;
}
}
catch(e)
{
zeigemeldung = true;
}
if (zeigemeldung)
{
window.setTimeout("window.location.href='ad_logout.php'","0")
}
</script>
{/literal}
<!--metatags......->
[/HTML]
die ad_logout.php schaut so aus
PHP-Code:
<?php
session_start();
header("content-type: text/html; charset=utf-8");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Erzwungener LogOut</title>
<link rel="stylesheet" type="text/css" href="login_style.css">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$user = $_SESSION['user'];
session_destroy();
echo "Sorry, Werbeblocker aktiv";
?>
</body>
</html>
Code:
Warning: session_destroy() [function.session-destroy]: Session object destruction failed in C:\xampp\htdocs\upload\shoutbox\ad_logout.php on line 15
warum kann die session nciht zerstört werden?
funkt das nicht bei nem javascript redirect oder woran liegts?
ich hoffe ihr wisst auch darauf ne antwort
mfg Julius
|

29.07.2008, 11:30:41
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 17
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Bist du so spät noch am skripten? Da kann doch nichts gutes bei rauskommen *gg* :D
Zu deinem Problem: Vielleicht hilft dir das weiter: http://www.php-resource.de/forum/sho...?threadid=3006
Insbesondere der dritte Beitrag enthält einen Workaround. Offensichtlich liegt das an dem lokalen XAMPP, das mit Sessions nicht richtig umgeht.
|

29.07.2008, 16:14:53
|
Junior Member
|
|
Registriert seit: Jul 2007
Beiträge: 225
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
abends kann ich imemr am besten arbeiten ;)
da wer dich ncith abeglenkt^^
wenn ich den beitrag richtig verstanden habe soll ich session_destroy
durch
unlink(session_save_path().'/sess_'.$PHPSESSID);
setcookie('PHPSESSID','',time()-3600,'/');
ersetzten
oder?
sess_ ist doch eine Konstante, oder?
muss ich die vorher irgednwie definieren, oder ist die automatisch definiert so wie __FILE__
?
|

29.07.2008, 19:48:31
|
Anfänger
|
|
Registriert seit: Feb 2007
Alter: 47
Beiträge: 69
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Zitat:
Zitat von JuliusCaesar
abends kann ich imemr am besten arbeiten ;)
da wer dich ncith abeglenkt^^
wenn ich den beitrag richtig verstanden habe soll ich session_destroy
durch
unlink(session_save_path().'/sess_'.$PHPSESSID);
setcookie('PHPSESSID','',time()-3600,'/');
ersetzten
oder?
sess_ ist doch eine Konstante, oder?
muss ich die vorher irgednwie definieren, oder ist die automatisch definiert so wie __FILE__
?
|
Nein, "/sess_" ist in diesem Fall der Beginn des Dateinamens der Session-Dateien.
Beispiel XAMPP (in diesem Beispiel ist XAMPP auf Laufwerk C installiert):
Speicherort für Sessions: C:/xampp/tmp/
Name einer Session-Datei: sess_c7912b1e6c335a1b78980610143a954d
Der komplette Pfad: C:/xampp/temp/sess_c7912b1e6c335a1b78980610143a954d
Und gleich als Hinweis... Nein es ist kein Schreibfehler das der Name der Datei keine Dateiendung enthält ;)
Zum besseren Verständnis:
Der Dateiname einer Session setzt sich zusammen aus dem Anfang "sess_" und der Session-ID.
|

29.07.2008, 19:57:38
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Zitat:
Der Dateiname einer Session setzt sich zusammen aus dem Anfang "sess_" und der Session-ID.
|
Wenn die Sessiondaten überhaupt in einer Datei liegen... :D
Auf session_destroy() kann man ganz entspannt verzichten!
Auch das löschen des Cookies ist egal/überflüssig.
Alternatives, vollständiges Session leeren:
PHP-Code:
$_SESSION = array();
session_regenerate_id(TRUE);
|

29.07.2008, 23:51:00
|
Junior Member
|
|
Registriert seit: Jul 2007
Beiträge: 225
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
@dokulesehemmung: thx, das ist wesentlich leichter zu verstehen als der setcookie teil^^
danke, das funzt nun wunderbar ;)
|

11.08.2008, 17:10:53
|
Junior Member
|
|
Registriert seit: Jul 2007
Beiträge: 225
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
hey
ich hol nochmal dienen thread hoch, weil die php erkennungsmethode noch ncith ganz funzt (die javascript methode funzt super!!)
Problem:$_SESSION['werbeblocker'] wird nicht auf off gesetzt in der index.php
PHP-Code:
<?php //./adverts/showads.php
session_start();
$_SESSION['werbeblocker'] = "off";
//HTTP-Header setzen
header('Content-type: image/png');
//Bild einlesen und ausgeben
$img = imagecreate(1,1);
$background_color = ImageColorAllocate($img,255,255,255);
imagepng($img);
?>
also springt der werbeblocker an...
wie kann ich die var$_SESSION['werbeblocker'] aus dem bild in die index.php übertragen?
habt ihr da ne vermutung?
mfg Julius
|

13.08.2008, 12:50:52
|
Anfänger
|
|
Registriert seit: May 2007
Beiträge: 17
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Wird $_SESSION['werbeblocker'] überhaupt nicht auf off gesetzt? Auch nicht, wenn man eine Seite ein zweites Mal aufruft?
Die Variable ist ja eine Sessionvariable, d.h., dass sie in allen Skripts zur Verfügung steht, sofern die Session vorher gestartet wird.
Evtl. kannst du mal posten, wie du das Bild dann einbindest bzw. wie du überprüfst, ob der Werbeblocker aktiv ist...
Gruß, Elfram
PS: Anfangs haben wir statt "off" FALSE benutzt, hast du das bei der Überprüfung auch geändert?
|

13.08.2008, 19:11:29
|
Junior Member
|
|
Registriert seit: Jul 2007
Beiträge: 225
|
|
AW: erkennen ob user einen Werbeblocker aktiviert hat, oder nicht
Zitat:
Wird $_SESSION['werbeblocker'] überhaupt nicht auf off gesetzt? Auch nicht, wenn man eine Seite ein zweites Mal aufruft?
Die Variable ist ja eine Sessionvariable, d.h., dass sie in allen Skripts zur Verfügung steht, sofern die Session vorher gestartet wird.
|
also wenn ich die session cookie geschcihte richtig verstanden hab, wird der session cookie erst gesetzt, nachdem die Seite geladen wurde,
$_SESSION['werbeblocker'] steht mir also erst bei einem reload der Seite zur verfügung
die session wird sowohl im php bild als auch in der index.php mit session_start gestartet
das bild wird via <img src="adverts/showads.php "> eingebunden
die überprüfung hab ich von dir übernommen, ich hab dort auch true und false durch on/off ersetzt und auch nur == anstatt === verwendet
true/false war mir zu undeutlich,daher hab ich on/off verwendet
das merkwürdige an der ganzen Sache: manchmal funzt es super, und an bestimmten Tagen wird nur müll gemacht, weil $_SESSION['werbeblocker'] nicht richtig gesetzt wird....
leigt das an xampp?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:38:43 Uhr.
|