Ich schreibe gerade an meiner Hp und hab auch schon den größten Teil der PHP Scripts erfolgreich geschrieben(GB, Newsscript&Commentfunction, etc) nun überlege ich bei dem ja eigentlich simplen Counterscript und bin mir nicht ganz schlüssig. Ich möchte, dass wirklich nur ein Besuch gezählt wird und nicht bei jedem Anklicken eines Links auf der Seite sich der Counter erhöht. Dazu überlege ich die IP des Besuchers eine gewisse Zeit zu speichern(ist das rechtlich ok?) oder eine Session einzurichten... Was ist eurer Meinung nach der beste und einfachste Weg dass zu gewährleisten? Anders als ein GB Spamschutz muss es ja nicht 100% sicher sein.
Counterfrage
Einklappen
X
-
Besuchsbegriff definieren: alle xx Stunden zusammen = ein Besuch. "Ein gezählter begonnener Besuch verfällt nach xx Stunden seit entweder Anfang, oder seit letzter Aktivität. "
Dies durchsetzen mit allen möglichen Mitteln, weil ein Mittel alleine nicht ausreicht, als Hauptmittel das Cookie, als Ausweichmittel die IP. Die Session ist ja auch ein Cookie, sonst würde ich die Session dazunehmen,URL-Sessions sind overkill).
Nur die Aufrufe von index.php zählen.
In meinem Land gibts keine Zwangstrennung.
Kommentar
-
mhh ja muss mich dann mal mit Cronjobsbeschäftigen, z.Z. läuft das ganze noch zum testen auf nem lokalen server.
@vierteln:naja cookies sind sone Sache, ich denke mal ein erheblicher Teil der User hat die standartmäßig nicht erlaubt. Bei den meisten Anbiertern gibt es afaik Zwangstrennung und ich weiß nicht, so große Fehler wird das schon nicht erzeugen oder? Ne gewisse Toleranz so +/-5% oder so sind schon ok für meine Zwecke.
ps:Bei mir läuft eh alles über index.php das Anzeigen von verschiedenen Seiteninhalten regel ich über $_GET.Zuletzt geändert von (05@; 07.05.2006, 23:04.
Kommentar
-
ich finde, dass session, dafür am bestens geeignet sind.
ein mal in sessionvariable ein wert setzen und counter erhöhen.
danach nur in session nachschauen ob die variable gesetzt ist.
da session nach bestimter zeit automatisch verfällt, brauchst du keine zusätzliche lösch und kontrollmechanismenSlava
bituniverse.com
Kommentar
-
Original geschrieben von boris-schneider
80% der internet User [...]
Also einen Counter mit so einer "Genauigkeit" kann man m.E. per rand() einfacher realisieren ...I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
@wahsaga:Es wird ja keine so hohe Fehlerquote geben, weil die wenigsten Leute sie ausloggen werden und danach weiter auf der Seite surfen werden.
@Slava:Wie übergeb ich dann am besten die Sessiondaten?Mit $_POST?Die müssten ja sozusagen immer im Hintergrund gesetzt bleiben.
Kommentar
-
Original geschrieben von (05@
@Slava:Wie übergeb ich dann am besten die Sessiondaten?Mit $_POST?Die müssten ja sozusagen immer im Hintergrund gesetzt bleiben.
befor du es verstanden hast, muss du aber mit mehreren fehlermeldungen auseinander setzen aber am ende lohnt es sich schon.
wenn du ein mal session gesetzt hast, dann brauchst du dir keine sorgen bei übergabe zu machen, das macht php bei richtigen einstellungen für dich von alleine.
erst mal mach
PHP-Code:session_start();
//dabei muss du aufpassen, dass vor dieser function keine einzige
//ausgabe kommt. sogar ein lehrzeichen in script führt zu fehlermeldung
if(!isset($_SESSION['angemeldet']))//ist nicht angemeldet
//counter erhöhen und variable setzen
{
$_SESSION['angemeldet']=1;
//deine code für erhöhen von counter in db oder datei
}
Slava
bituniverse.com
Kommentar
-
Ich würde das ganze über ne mySQL DB machn, wenn du schon Gästebuch etc auf der HP hast, ist das wahrscheinlich keine große Sache da noch was für den Counter zu machn.
Tabelle mit IP und Timestamp (und ID)
jedesmal wenn Seite aufgerufen wird, prüfen ob IP schon in DB is
- wenn nicht neuen Eintrag machn und Counter erhöhen
- wenn ja gucken wie lange der Timestamp her ist und keinen Counter erhöhen bzw neu setzen! je nachdemMess with the Besth, die like the rest!
Kommentar
Kommentar