Besucherrückverfolgung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
array
ausgabe
ausgeben
besucher
browser
code
datum
einlesen
file
forum
host
http
liste
paar
page
speichern
treffer
url
zeile
-
!
Ich möchte in meinem Forum anzeigen, wo, also von welcher HP, meine letzten 10 Besucher kamen. Weiß jemand, wie man das machen kann?
Ich mein so ähnlich wie hier:
http://www.counter-gratis.com/45261.html
Grüße , vwz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich kann dich wieder auf Piwik verweisen. Da gibt es ein Widget, welches dir anzeigt von wo aus deine Besucher auf die Seite zugegriffen haben.
-
Find ich nur doof, das ist englisch! :D
Ne, ich mein, das dann auf der Startseite meines Forums, unten, vor den letzten Beiträgen noch ne Tabelle is, wo die letzten besucher herkamen! (nur der aktuelle darf natürlcih nicht dabei sein :D
Für Statistiken nehm ich Google Analytics und 4stats!
Beitrag zuletzt geändert: 8.8.2009 12:12:26 von visualwebzone -
man kann auch mal google verwenden, das ist eine suchmaschine wo man den suchbegriff eingibt und dann kommen ein paar seiten, die man dann angucken kann.
zb gibst du bei google.de ein ...
php browser abfragen tutorial
-> http://www.google.de/search?hl=de&client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&hs=QGj&q=php+browser+abfragen+tutorial&btnG=Suche&meta=
... dann kommen viele, viele seiten, die du mal durchgucken kannst.
ja nach belieben kannst du das wort "browser" durch andere begriffe ersetzten, die dir gerade einfallen. das ist nicht schwer.
du kannst aber auch schreiben, das du den code haben willst, den du nur noch in die seite einbinden magst, dann bekommst du sicher ein paar angebote von den lima-nutzern und kannst dich für das günstigste entscheiden.
ps-edit
http://www.lima-city.de/thread/muelleimer-einrichten/page%3A0/perpage%3A100#794145
ich halte diesen thread für einen "schwarzes brett"-kanditat, aber eventuell landet da nur mein beitrag, das wäre auch nicht schlimm.
Beitrag zuletzt geändert: 8.8.2009 12:17:06 von sonok -
Hallo
einfach den Wert von
$_SERVER['HTTP_REFERER'];
in einen .txt Datei schreiben und zur Ausgabe diese auslesen
(bei viel Traffic aus Performance-Gründen in MySQL speichern)
<?php $rmax = 10; $rdatei = "referer.txt"; $newref = $_SERVER['HTTP_REFERER']; // ------ Daten einlesen ------ $rdaten = file($rdatei); $rx = count($rdaten); if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } // ------ neue Daten schreiben ------ if (isset($newref)) { $handle=fopen($rdatei,"w"); fputs($handle,$newref."\r\n"); for ($x=0; $x<$bis; $x++) { $rdaten[$x] = chop($rdaten[$x]); fputs($handle,$rdaten[$x]."\r\n"); } fclose($handle); } // ------ Daten nur ausgeben ohne schreiben------ if (isset($newref)) { echo "<br /> Referer: <i>".$newref."</i>"; } for ($x=0; $x<$bis; $x++) { echo "<br /> Referer: <i>".$rdaten[$x]."</i>"; } ?>
so in der Art ...habs nicht getestet ;)
edit: PS: zum Speichern ohne Ausgabe einfach
bei den Zeilen mit Ausgabe ein paar Rauten davor einfügen:
### echo "<br /> Referer:...
oder anders auskommentieren / die Zeilen mit echo entfernen ...
Beitrag zuletzt geändert: 8.8.2009 13:09:36 von tela -
Is aber noch nicht ganz ausgereift!
Da werden alle Besucher angezeigt. Und bei fast 300 dauert das ein Stück, so dass sich mein Browser aufgehängt hat!
Ich werde den Code mal überarbeiten! -
Hi
ja, habe grad selber am Code oben die gröbsten Schnitzer ausgebessert,
mit edit ...
jetzt sollte es besser gehen, nochmal testen bitte ;)
und ja, stimmt, so speichert er alle Anfragen die ein Referer-Wert leifern
also auch doppelte, Spider, Robots, etc. und auch interne Links
ich wollte ja nicht gleich alles verraten ;) ... keine Komplettlösung mal so runter-tippen ...
man kann als "Bedingung" zum speichern bestimmt noch viele Kriterien festlegen um Einschränkungen zu machen ob zur Liste hinzufügen oder nicht, vorallem interne Links ausschließen. oder auch erweitern mit Zeit des Referer auch speichern, usw ...
ok, die Liste jedesmal komplett neu mit "w" zu schreiben ($bis ist maximal 10) ist vielleicht suboptimal, aber die Menge 10 als Maximum in der Liste müsste doch funktionieren
Beitrag zuletzt geändert: 8.8.2009 13:23:25 von tela -
Jetzt klappts!
Nur noch nicht ganz so wie ich es möchte!
Ich denke es wäre besser, wenn nur die HP der Besucher angezeit wird, also nur http://www.example.com, ohne irgenwas dahinter.
Und wie geht es, das ich mich, wenn ich auf die Seite gehe, ausschließe aus der liste? indem ich ne IP-Abfrage mach? wie geht das?
Beitrag zuletzt geändert: 8.8.2009 14:05:37 von visualwebzone -
also im code wird ja nix anderes ausser die REFERER-URL gespeichert
hier nochmal ne Version2:
<?php $rmax = 10; $rdatei = "referer.txt"; $newref = $_SERVER['HTTP_REFERER']; $myhost = $_SERVER['SERVER_NAME']; // ------ Daten einlesen ------ $rdaten = file($rdatei); $rx = count($rdaten); if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } // ------ neue Daten schreiben ------ if ( isset($newref) and $newref != "0" and $newref != "" ) { preg_match('@^(?:http://)?([^/]+)@i', $newref, $treffer); $rehost = $treffer[1]; echo "<br>\r\n"; echo "<br>My-Host: ".$myhost."\r\n"; echo "<br>RefHost: ".$rehost."\r\n"; echo "<br>\r\n"; if ($rehost != $myhost) { ### externer Referer-Link $handle=fopen($rdatei,"w"); if ($newref != "") { fputs($handle,$newref."\r\n"); } for ($x=0; $x<$bis; $x++) { $rdaten[$x] = chop($rdaten[$x]); if ($rdaten[$x] != "") { fputs($handle,$rdaten[$x]."\r\n"); } } fclose($handle); } else { ### interner Referer-Link } } // ------ Daten nur ausgeben ohne schreiben------ if ($rehost != $myhost) { if (isset($newref)) { echo "<br />".$newref.""; } } else { ### interner Referer-Link } for ($x=0; $x<$bis; $x++) { echo "<br />".$rdaten[$x].""; } ?>
jetzt werden REFERERs vom eigenen Webspace nicht mehr mit gespeichert, nur noch wenn Klick auf Link von anderer Seite
:)
habs jetzt doch auch mal getestet, ist doch genau was Du willst ... ?! :)
-
Meine Lösung ist folgende:
$rmax = 10; $rdatei = "referer.txt"; $newref = $_SERVER['HTTP_REFERER']; // ------ Daten einlesen ------ $rdaten = file($rdatei); $rx = count($rdaten); if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } // ------ neue Daten schreiben ------ if (isset($newref)) { $handle=fopen($rdatei,"w"); fputs($handle,$newref."\r\n"); for ($x=0; $x<$bis; $x++) { $rdaten[$x] = chop($rdaten[$x]); fputs($handle,$rdaten[$x]."\r\n"); } fclose($handle); } // ------ Daten nur ausgeben ohne schreiben------ for ($x=0; $x<$bis; $x++) { if (strlen($rdaten[$x] != 0)) { echo '<tr><td class="w" colspan="2">Direct</td></tr>'; } else { echo '<tr><td class="w" colspan="2"><a href="'.$rdaten[$x].'" target="_blank">'.$rdaten[$x].'</a></td></tr>'; } }
Aber wie kann ich es machen, das nur der Host, also z.B. http://www.google.de/ und niht mehr angezeigt wird? -
Hallo
Du kannst so wie ich es mit $myhost = $_SERVER['SERVER_NAME'];
gemnacht habe auch mit einem Array für "Badwords" machen,
also eine Liste von Hosts zusätzlich zu der eigenen die gesperrt sind
$keinref = array($myhost, "google.de","google.com");
dann halt da noch ne Schleife die alle Domains in dem Array durchgeht
und wenn in $newref enthalten dann nicht schreiben und nicht ausgeben.
-
Aber wie kann ich es machen, das nur der Host, also z.B. http://visualwebzone.lima-city.de/ und nicht http://visualwebzone.lima-city.de/vwz_page_forum.page angezeigt wird?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage