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-Key: 124824

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

Printed on: April 19, 2024 at 03:04 o'clock

Member: kaiand1
kaiand1 Sep 13, 2009 at 22:31:44 (UTC)
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....
Member: aFankhauser
aFankhauser Sep 13, 2009 at 22:48:58 (UTC)
Goto Top
face-smile
Gute idee das mit dem get parameter ich probiers gleich aus.
Member: lukluk
lukluk Sep 14, 2009 at 05:58:11 (UTC)
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.
Member: Arano
Arano Sep 14, 2009 at 14:32:18 (UTC)
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
Member: aFankhauser
aFankhauser Sep 15, 2009 at 21:14:16 (UTC)
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>