afankhauser
Goto Top

eigener pc von counter ausschliessen PHP

ich suche nach einer Möglichkeit, mich beim Besucherzähler auzuschliessen.

ich glaub die Frage sollte schon klar sein. face-smile

hier noch ein teil aus der INDEX.PHP
<?php
session_set_cookie_params(3600);
session_start();
$datei = fopen("files/counter.txt","r+");  
$counterstand = fgets($datei, 12);
if($REMOTE_ADDR != "xxx.xxx.xxx.xxx") {  
 if(!isset($_SESSION['counter_ip'])){  
  $counterstand++;
  rewind($datei);
  fwrite($datei, $counterstand);
  $_SESSION['counter_ip'] = true;  
  $oD2 = fopen("files/users.txt","a");  
  fwrite($oD2,date("d.m.Y - H:i", time())."  ". $REMOTE_ADDR."\r\n");  
  fclose($oD2);
 }
}
fclose($datei);
?>

hab es neuerdings mit
if($REMOTE_ADDR != "xxx.xxx.xxx.xxx") {...
versucht.
Aber in Meinem BesucherProtokoll (users.txt) habe ich irgendwie schon verschiedene Adressen gehabt. und gehe nun davon aus, dass diese sich ändern.

schlussendlich habe ich noch einen Laptop, der auch ausgeschlossen werden sollte.

Hab mir auch schon Gedanken gemacht ob ich auf meinen Systemen eine bestimmte Datei anlegen sollte. die dann als Unterscheidungsmerkmal dienen könnte...

Content-ID: 124824

Url: https://administrator.de/contentid/124824

Ausgedruckt am: 12.11.2024 um 19:11 Uhr

kaiand1
kaiand1 14.09.2009 um 00:31:44 Uhr
Goto Top
Naja du bekommst von deinen Provider eine Dynamische IP
Die ändert sich spä. alle 24Std.
Wenn du bei dir ein Login hast koppel den damit das du nicht gezählt wirst.
Sonst über Session lösen das du über zb den Adminbereich nicht gezählt wirst.
Oder ruf deine Seite über ein Linkzusatz "url.de?counter=mich_nicht_zählen" auf wo du rausgenommen wirst....
aFankhauser
aFankhauser 14.09.2009 um 00:48:58 Uhr
Goto Top
face-smile
Gute idee das mit dem get parameter ich probiers gleich aus.
lukluk
lukluk 14.09.2009 um 07:58:11 Uhr
Goto Top
Was du ggf noch probieren könntest, ist den User-Agent zu prüfen. Dazu dann halt (je nach Browser) am besten eine extension oder einen Hack heraussuchen, der dich einen eigenen Agent einrichten lässt und dann halt irgendwas kleines abändern, was dich identifiziert (kanns ein dass man den agent auch irgendwo in about:config ändern kann, weiss ich aber im mom nicht genau).

Oder halt falls du keinen allerweltsbrowser hast... einfach agent in verbindung mit deiner IP in "dynamsicher" form. Also 192.168.*.* abfragen oder sowas.
Arano
Arano 14.09.2009 um 16:32:18 Uhr
Goto Top
Hallo,

jemand nen "Cookie" !?

Also ich finde das wäre ein Versuch wert !
Lasse von der Seite (z.B. im Adminbereich, extra Menüpunkt => CounterCookieCheck) einen Cookie auf deinem Rechner speichern.
$_COOKIE['disableCounter'] = TRUE;

Im Counterscript brauchst du dann bloß noch prüfen ob dieser Cookie existiert und ob dessen Wert TRUE ist.
Bzw. ich würde es ausschließen:
<?php
  if(FALSE===isset($_COOKIE['disableCounter']) || FALSE===$_COOKIE['disableCounter'])  
  {
    // Hier die Counteraktion die nur ausgeführt wird wenn des Cookie FALSE oder nicht gesetzt ist.
    // Also bei jedem normalen Besucher, von denen es ja am meisten geben sollte...
  }
?>
Ich finde es dann auch schöner und übersichtlicher als das gegenteilige if-else Konstrukt, das ja auch wider länger wäre... meine Meinung


~Arano
aFankhauser
aFankhauser 15.09.2009 um 23:14:16 Uhr
Goto Top
Oh Danke.

da scheint es doch ein paar Varianten zu geben. die mit dem get von @kaiand1 gefällt mir am besten. sie ist simpel und genau das, was ich suchte.
ich hab jetzt allerdings die ganze sessions geschichte entfernt und verwende den Parameter nun auf der ganzen Seite einfach bei jedem aufruf von index.php. damit ich nicht mitgezählt werde, ist der Parameter einfach in meinem Startseitenaufruf imbegriffen.
..../index.php?counter=1
<?php
$a1 = $_GET['nocount'];  
if ($a1!="1") {  
 $datei = fopen("files/counter.txt","r+");  
 $counterstand = fgets($datei, 12);
 $counterstand++;
 rewind($datei);
 fwrite($datei, $counterstand);
 $oD2 = fopen("files/users.txt","a");  
 fwrite($oD2,date("d.m.Y - H:i", time())."  ". $REMOTE_ADDR."\r\n");  
 fclose($oD2);
 fclose($datei);
}
?>

<edit>
ich hab mir das mit dem session entfernen nochmals überlegt. ich lass sie besser drin.
Grund: wenn jemand meine Seite als Startseite setzt, und da schon ?nocount=1 steht wird der auch nie mehr gezählt...
nun läuft das ganze kombiniert.
<?php
$a1 = $_GET['nocount'];  
session_set_cookie_params(3600);
session_start();
$datei = fopen("files/counter.txt","r+");  
$counterstand = fgets($datei, 12);
if(!isset($_SESSION['counter_ip']) and $a1!="1"){  
 $counterstand++;
 rewind($datei);
 fwrite($datei, $counterstand);
 $_SESSION['counter_ip'] = true;  
 $oD2 = fopen("files/users.txt","a");  
 fwrite($oD2,date("d.m.Y - H:i", time())."  ". $REMOTE_ADDR."\r\n");  
 fclose($oD2);
}
fclose($datei);
?>
</edit>