SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 28.07.2008, 20:46:03
Elfram Elfram ist offline
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.
Mit Zitat antworten
  #12  
Alt 29.07.2008, 02:32:08
JuliusCaesar JuliusCaesar ist offline
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
Mit Zitat antworten
  #13  
Alt 29.07.2008, 11:30:41
Elfram Elfram ist offline
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.
Mit Zitat antworten
  #14  
Alt 29.07.2008, 16:14:53
JuliusCaesar JuliusCaesar ist offline
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__
?
Mit Zitat antworten
  #15  
Alt 29.07.2008, 19:48:31
CPA CPA ist offline
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 Beitrag anzeigen
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.
Mit Zitat antworten
  #16  
Alt 29.07.2008, 19:57:38
DokuLeseHemmung DokuLeseHemmung ist offline
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); 
Mit Zitat antworten
  #17  
Alt 29.07.2008, 23:51:00
JuliusCaesar JuliusCaesar ist offline
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 ;)
Mit Zitat antworten
  #18  
Alt 11.08.2008, 17:10:53
JuliusCaesar JuliusCaesar ist offline
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
Mit Zitat antworten
  #19  
Alt 13.08.2008, 12:50:52
Elfram Elfram ist offline
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?
Mit Zitat antworten
  #20  
Alt 13.08.2008, 19:11:29
JuliusCaesar JuliusCaesar ist offline
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?
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Felder (user id) um Wert verändern sql-newbie MySQLi/PDO/(MySQL) 2 08.04.2008 17:10:14
htaccess user doppelt / passwörtern unterschiedlich ist das möglich ? steffi Apache HTTP-Server 7 06.04.2005 20:13:45
Das soll nach 1 h ausgeführt werden! Spike15 PHP Grundlagen 12 04.04.2005 16:29:57
Probleme bei nem user online Script KiKoN PHP Grundlagen 15 28.11.2004 13:22:24
mehrere user gleichzeitig bedienen PiCiJi PHP für Fortgeschrittene und Experten 5 15.08.2003 11:31:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:38:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.


© 2001-2025 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt