PHP Aktiviertes Flash-Plugin zählen

Chris_64

Cadet 4th Year
Registriert
Juli 2004
Beiträge
66
Hallo,

ich möchte abfragen wieviele meiner Besucher das Flash-Plugin auch tatsächlich aktiviert haben.
Da ich es serverseitig lösen möchte, dachte ich wäre PHP ideal dafür (da manche JScript deaktiviert haben).
Eine Lösung für die Abfrage habe ich bereits:


PHP:
<?php  
// Search through the HTTP_ACCEPT header for the Flash Player mime-type.  
$swfheader = strpos($_SERVER['HTTP_ACCEPT'],'application/x-shockwave-flash');  
if($swfheader === false)  
{  
$hasFlash=true;  
}  
else  
{  
$hasFlash=false;  
}  
?>
Würde gerne aber einen Schutz einbauen, welcher verhindert dass ich einen Besucher doppelt zähle. Wie kann man so etwas einbauen? Hätte an Cookie-Sessions gedacht.

Desweiteren würde ich dies gerne in eine einfache Text-Datei abspeichern. Kenne mich jetzt aber nicht besonders in PHP aus und wäre für weitere Hilfe sehr dankbar...

MFG u. Danke
Chris
 
mach ne abfrage über session_id() und lasse jeweils nur 1x die session_id() zu, sodass auch nur 1 mal die Session gezählt wird.

session_id() liefert die eindeutige SessionID der Browsersitzung, d.h. beim nächsten Browserstart ist die wieder anders und von Browser zu Browser natürlich unterschiedlich. Eindeutiger ist es warscheinlich über die IP, also mit $REMOTE_ADDR.

Schreiben in eine Textdatei geht folgendermaßen:

Code:
<?php
   $handle = fopen("users.txt","w");
   fputs($handle,$anzahluser);
   fclose($handle);
?>

MfG, DM.
 
Zuletzt bearbeitet:
Danke dir für deine schnelle Hilfe...

Das mit der Session_id() hört sich gut an, werde da mal mich reinlesen...

Das mit der IP habe ich mir auch überlegt, aber viele surfen über Proxies (zb. Unternehmen) und würde somit diese nicht mitzählen. In meinem Fall sind viele meiner Besucher aus dem b2b-Bereich, somit würde ich es ungerne über die IP-Adresse lösen.

Bin für andere Vorschläge dennoch offen...

MFG

Edit: Vermiße dich in meinem Geldbeutel, will dich wieder haben... :D
 
@DeutscheMark: Das Schreiben in die Datei bringt relativ wenig, wenn vorher nicht aus selbiger die alten Daten gelesen werden...

btt: Ich würde vielleicht einfach nen Array mit zwei Feldern speichern, eines welches einmal den Wert für die Leute, die das Plugin aktiviert haben zählt, das andere mit den deaktivierten...
 
Das Lesen und anschließende Speichern aus der Textdatei könnte durchaus problematisch sein, da nach dem Lesen ein anderes Skript den Counter schon um eins erhöht haben kann und somit Besuche verlorengehen. Daher würde ich eine Datenbank (MySQL) empfehlen mit einer entsprechenden Update-Anweisung (nicht erst ein Select und dann ein Update!). Beispielsweise so in der Art: "Update counter set count = count +1;".

In der Datenbank könnte man dann auch die Session-IDs speichern und somit feststellen, ob es ein neuer Benutzer ist oder nicht. Man sollte dabei auch mitspeichern, wann die letzte Aktion war damit man alte Sessions löschen kann.

Das Feststellen, ob der User Flash hat oder nicht, ist über den Mime-Header meines Wissens nach nicht zuverlässig möglich. Meine Browser senden das zumindest nicht aus (normalerweise tun sies aber, das stimmt schon) und wenn man über einen Proxy geht kommt das auch nicht zwangsweise immer mit. Ich würde ein Dummy-Flash im HTML-Code einbetten, welches auf eine PHP-Datei mit in etwa folgendem Inhalt verweist:
PHP:
<?php
// vorher natürlich bestimmen ob neue Session vorliegt und Datenbankverbindung aufbauen
if($newsession){
 $sql->query("Update counter set count = count +1;");
}
header("Content-type: application/x-shockwave-flash");  // richtigen Header ausgeben
echo file_get_contents("dummy.swf");   // ein leeres Flash mit 1x1 Pixel Größe damits keine Fehler im Browser gibt
?>
Wenn ein Browser dieses Skript aufruft, dann hat er Flash installiert.
 
Zuletzt bearbeitet:
Zurück
Oben