PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

07-05-2006, 22:26
|
(05@
Newbie
|
|
Registriert seit: Apr 2006
Beiträge: 12
|
|
Counterfrage
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.
Geändert von (05@ (07-05-2006 um 23:05 Uhr)
|

07-05-2006, 22:36
|
boris-schneider
Junior Member
|
|
Registriert seit: Apr 2006
Ort: Hessen/FFM
Beiträge: 208
|
|
Re: Counterfrage
Um den Besucher zu identifizieren solltest du am besten seine IP samt zeitpunkt speichern, am besten dann via Cronjob oder so, alle 24 Stunden das db table mit den gespeicherten IPs, und anderen infos dann leeren.
Sers
Der Boris
|

07-05-2006, 22:45
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
in anbetracht wechselnder IPs...
|

07-05-2006, 22:49
|
boris-schneider
Junior Member
|
|
Registriert seit: Apr 2006
Ort: Hessen/FFM
Beiträge: 208
|
|
80% der internet User die sich von zuhause aus einwählen, benutzen einen Router, ergo ist die warscheinlichkeit das sich die IP erst nach 24 Stunden bzw. der zwangstrennung ändert sehr gross!
Coockies oder gar Sessions sind für besucherstatistiken meiner meinung nach gänzlich ungeeignet.
|

07-05-2006, 23:06
|
(05@
Newbie
|
|
Registriert seit: Apr 2006
Beiträge: 12
|
|
Danke. Werds dann wohl so machen(evtl. statt Cronjob nen script, mal sehen)
|

07-05-2006, 23:12
|
vierteln
Junior Member
|
|
Registriert seit: Apr 2006
Beiträge: 99
|
|
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.
|

07-05-2006, 23:14
|
boris-schneider
Junior Member
|
|
Registriert seit: Apr 2006
Ort: Hessen/FFM
Beiträge: 208
|
|
Zitat:
Original geschrieben von (05@
Danke. Werds dann wohl so machen(evtl. statt Cronjob nen script, mal sehen)
|
Cronjobs sind aber praktischer!
Wenn du selbst keine Cronjobs nutzen kannst dann gibt es immernoch genug Anbieter von Free-Cronjobs, über die Boardsuche findest du auch diese
|

08-05-2006, 00:00
|
(05@
Newbie
|
|
Registriert seit: Apr 2006
Beiträge: 12
|
|
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.
Geändert von (05@ (08-05-2006 um 00:04 Uhr)
|

08-05-2006, 00:49
|
Slava
PHP Senior
|
|
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
|
|
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 kontrollmechanismen
|

08-05-2006, 01:09
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Original geschrieben von boris-schneider
80% der internet User [...]
|
Und eine Fehlerquote von 20% (bzw. eigentlich wohl mehr, weil bei diesen 20% dann ja jeder Hit als Visit gezählt würde) findest du akzeptabel?
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.
|

08-05-2006, 22:11
|
(05@
Newbie
|
|
Registriert seit: Apr 2006
Beiträge: 12
|
|
@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.
|

08-05-2006, 22:44
|
Slava
PHP Senior
|
|
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
|
|
Zitat:
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.
|
ich glaube, dass es am besstens ist , wenn du ein kleine Tutorial über session und das wird dir in keinem fall schaden.
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
}
mehr muss auch nichts sein
|

08-05-2006, 23:02
|
(05@
Newbie
|
|
Registriert seit: Apr 2006
Beiträge: 12
|
|
Aso ja, hatte noch nicht damit gearbeitet. Danke!
|

09-05-2006, 09:58
|
Besth
Registrierter Benutzer
|
|
Registriert seit: Mar 2006
Beiträge: 249
|
|
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 nachdem
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|