Ich habe PHP-Zähler Skript, liest einfach die Besucher Nummer aus einer Textdatei, erhöht es um 1 und schreibt den neuen Wert in die gleiche Textdatei. Dies zählt natürlich jede Seitenaktualisierung, aber ich möchte nur einzelne Besucher zählen und Seitenaktualisierungen nicht zählen. Wie kann ich das machen? Ich habe versucht, eine Sitzung am Anfang meiner Hauptdatei zu starten und dann zu prüfen, ob die Sitzung existiert, aber weil die Sitzung immer existiert, wenn die Datei geladen wird, wird der Zähler nie inkrementiert ... Ich vermisse wahrscheinlich etwas dummes ... kann jemand zeig mir in die richtige Richtung?Wie wird ein Zähler nur erhöht, wenn es sich um eine neue Sitzung handelt?
dank
-1
A
Antwort
3
Sie ein Flag gesetzt werden, wenn es bereits vorhanden ist doesnot, dann sind Sie eine Aktion zu tun:
session_start();
if(!isset($_SESSION['started'])){
$_SESSION['started'] = true;
//Increment your counter here
}
+0
danke, die Fahne ist was ich vermisst habe ... – marcnyc
Verwandte Themen
- 1. Wenn ein Quarzjob ausgelöst wird, handelt es sich um eine neue Jobklasseninstanz?
- 2. So drücken Sie ein Array-Element nur, wenn es sich um eine Einfügung handelt
- 3. Wie erhöht man einen Zähler in Cassandra?
- 4. SESSION Schleife, die den Zähler erhöht
- 5. Javascript Zähler erhöht Zähler in jedem Aufruf
- 6. Wie kann ich den verbleibenden Platz füllen, wenn es sich um eine Inline-UL handelt?
- 7. Wie überschreibt man __getitem__, wenn es sich um eine Klassenmethode handelt?
- 8. Wie kann man wissen, ob es sich bei GWT um eine Datei oder ein Verzeichnis handelt?
- 9. Wie funktioniert der Click-Handler, wenn auf ein beliebiges "a" -Tag geklickt wird, unabhängig davon, um was es sich handelt?
- 10. Handelt es sich um alle möglichen (nicht aktivierten) Ausnahmen?
- 11. Überprüfen Sie, ob es sich bei einer Seite um eine übergeordnete Seite handelt oder ob es sich um eine untergeordnete Seite handelt.
- 12. Warum verhält sich Array.apply (null, [args]) inkonsistent, wenn es sich um Sparse-Arrays handelt?
- 13. Warum wird/F normalerweise mit FOR-Schleifen verwendet, auch wenn es sich um Nicht-Textdateien handelt?
- 14. Wie kommt es, dass der Code nicht mehr überprüft, ob es sich um ein Array handelt?
- 15. jquery dataTable kann Text nicht brechen, wenn es sich um eine URL handelt
- 16. Warum ein regulärer Ausdruck, der '\' enthält, auszudrücken, ohne dass es sich um eine rohe Zeichenfolge handelt.
- 17. Warum verwendet PyCharm einen doppelten Backslash, um darauf hinzuweisen, dass es sich um ein Escaping handelt?
- 18. Würde C/C++/Pascal/etc. wesentlich langsamer, wenn es sich um eine stapellose Sprache handelt?
- 19. Schaltflächen ein- und ausblenden, sobald Zähler erhöht oder verringert werden?
- 20. Wie lösen parametrierte Methoden <T> auf, wenn es sich nicht um einen Eingabeparameter handelt?
- 21. Wie kann ich feststellen, ob es sich um ein mobiles Gerät mit PHP handelt?
- 22. Javascript-Zähler erhöht sich um mehr als 1. Warum? Wie behebe ich das?
- 23. CodeIgniter + QuickAuth + Ein Benutzer, nur eine Sitzung
- 24. Versucht, ein Namensfeld zu validieren, um sicherzustellen, dass es sich nur um alphanumerische Zeichen oder einen Bindestrich oder Apostroph handelt.
- 25. M2Eclipse kann keine Abhängigkeiten finden, wenn es sich um Projekte im selben Arbeitsbereich handelt.
- 26. Wie überprüft man, ob es sich um eine HomePage/Startseite handelt?
- 27. Wie ermittelt man, ob es sich bei einem Typ um eine Art Sammlung handelt?
- 28. Wenn Sie eine SQL Express DB über eine Verbindungszeichenfolge anfügen, handelt es sich um eine exklusive Sperre?
- 29. Wie rufe ich in Python die Superklasse auf, wenn es sich um ein einmal benanntes Tupel handelt?
- 30. Wie ermittelt man, ob es sich bei der eingelegten CD um eine Audio-CD handelt?
* "kann mir jemand zeigen in die richtige Richtung?" * - Sicher = >>> http: //php.net/manual/en/features.sessions.php –
php if (! isset ($ _ SESSION)) { \t if (file_exists ('counter.txt')) \t { \t \t $ Datei = fopen ('counter.txt', 'r'); \t \t $ dat = fread ($ Datei, Dateigröße ('counter.txt')); \t \t fclose ($ datei); \t \t $ file = fopen ('counter.txt', 'w'); \t \t fwrite ($ datei, $ dat + 1); \t \t fclose ($ datei); \t} \t sonst \t { \t \t $ file = fopen ('counter.txt', 'w'); \t \t fwrite ($ file, 1); \t \t fclose ($ datei); \t} } echo file_get_contents ("counter.txt"); ?> – marcnyc
Dies ist ziemlich einfach. 'if (! isset ($ _ SESSION ['counter'])) {$ _SESSION ['counter'] = true;/* update, inkrementiere die Datei * /} ', so dass du die Sitzung zerstören oder ablaufen lassen musst, bevor sie erneut erhöht wird. Denken Sie daran, zuerst 'session_start();' aufzurufen. – Qirel