gelöst Einfaches PHP Counter-Script gibt laufzeitüberschreitung aus ?

Mitglied: mkrasselt1

mkrasselt1 (Level 1) - Jetzt verbinden

02.02.2010, aktualisiert 12.02.2010, 8049 Aufrufe, 6 Kommentare

Warum sorgen einfache Aditionen bei meinem PHP-Script für Fehlermelungungen,
und eine schleife zum Dateiauslesen überschreitet die Laufzeit

Hallo Koleggen,
nun, wenn ich schreibe, muss mein Problem schon tiefer liegen.
Ich habe mir einen PHP-Besucherzähler gebaut, der einfach nur die Absolut
Besucher zählen soll, dazu gibt es eine .txt datei für Besucherzahl,
und eine für die besuchenden IP's.
Wiedererkannt werden besucher mittels Cookie.
eigentlich nichts komplitziertes und Rechenaufwändiges, aber mein Script
bricht iwie immer mit Laufzeitüberschreitung ab.
ich habe schon alles versuch und das Script sogar schon 7 mal Neugeschrieben, und wollte es schon aufgeben.

Vieleicht könnt ihr mir helfen

mkrasselt1

Hier jetzt die Fehlermeldungen und das Script:
-------Script---------
----------Fehlermeldung bei diesem Script-------------------
Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\counter.php:5) in E:\xampp\htdocs\counter.php on line 7

Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\counter.php:5) in E:\xampp\htdocs\counter.php on line 20

Fatal error: Maximum execution time of 60 seconds exceeded in E:\xampp\htdocs\counter.php on line 27
Mitglied: thaenhusen
02.02.2010 um 15:45 Uhr
Moin.

Das error_reporting(E_ALL); muss als erste Zeile, also vor irgendwelchen Ausgaben kommen.

Durch die Deine Schleiferei durch Dateien wird das vermutlich sehr langsam. Du solltest das mit einer
Datenbank (z.B. MySQL) machen und einen Timestamp aufnehmen und alles älter als ein Tag rausschmeissen.

Dann gucken, ob die IP noch vorhanden ist und wenn nicht sie hinzufügen und den letzten Wert für Counter dabei um eins erhöhen...

Dann haut das in akzeptabler Zeit hin.

HTH
MK
Bitte warten ..
Mitglied: mkrasselt1
02.02.2010 um 15:54 Uhr
Danke,
wäre auch ne idee, aber ich möchte nicht von meinem datenbankserver abhängig sein.
Da ist mir die Smart variante mit den dateien lieber, zumal bei meine 10 besuchern im Jahr,
die datenbank nicht wirklich sinn machen würde.
Ich habe mal die e "weisung befolgt",
hier das Ergebnis: http://michaelshomepage.dnsalias.com/counter.php
Aber das wäre ja nicht das einzige Problem,
da ja in der einen zeile mit der fgets anweisung trotzdem probleme auftreten.
Danke schonmal im vorraus.
mkrasselt1
Bitte warten ..
Mitglied: Arano
02.02.2010 um 16:58 Uhr
Sind geil solche Kommentare oder ?
Beschäftigen sich kein Stück mit dem gestelltem Problem, raten aber zu allem möglichem...
@thaenhusen: Nicht böse sein Jemanden auf (möglicherweise) bessere/schnellere oder was auch immer für Möglichkeiten hinzuweisen ist ja definitiv keine verkehrte Sache, im Gegenteil !
Aber man kann nie genau wissen warum der Gegenüber sich gerade für diesen Weg entschieden hat. Vielleicht bietet der Webspace keine Datenbank an oder man möchte auch einfach zuhause Weiterwerkeln ohne sich den DB-Server noch installieren zu müssen obwohl man keine Ahnung hat ect. pp.
Lernen kann man alles, das ist klar aber nicht alles auf einmal und so fängt man eben auch klein an, anstelle eines "riesigen" SQL-Servers einfach eine kleine Datei fertig aus und punkt.
Was ich eigentlich sagen wollte.
Drängt dem Hilfesuchenden nicht in eure Wege, __helft ihnen ihren eigenen Weg zu bestreiten__ und wenn ihr möchtet, erzählt ihnen von eurem Weg.
(Wow, ich bin begeistert von mir)

@mkrasselt1:
Das Problem ist der Modus in dem du die Datei öffnest !
__Zeile 24:__
So wird die Datei mit dem "Zeiger" am Ende der Datei geöffnet, so kann schon mal nichts mehr aus der Datei gelesen werden weil der Zeiger sich bereits am Ende der Datei befindet.
Dadurch (das weiss ich jetzt nicht genau) kommt es scheinbar mit feof() zu dem Problem das das Ende nicht erkannt wird. Ich vermute das es daran liegt weil die Datei zum lesen UND schreiben geöffnet wurde und es somit kein richtiges Ende der Datei gibt da diese gerade ohne Beschränkung erweitert / beschrieben werden kann.
Verwende anstelle von "a" das "r" aber vergiss nicht das du später noch etwas in die Datei schreiben möchtest, diese dann aber aktuelle nur zum lesen geöffnet ist !

Für das auslesen der "besucher.txt"-Datei schau dir mal file_get_contents() an.

Rücke den Text um eine bestimme anzahl ein z.B. 4 Leerzeichen, das ist sehr gebräuchlich, sieht einheitlicher und sauberer aus und ist zudem besser lesbar.


~Arano
Bitte warten ..
Mitglied: dog
02.02.2010 um 17:22 Uhr
Hach...wie schön, dass es serialize(), unserialize(), file_get_contents() und file_put_contents() gibt.
Bitte warten ..
Mitglied: mkrasselt1
02.02.2010 um 17:37 Uhr
super, danke, es geht jetz soweit, nur das er bei jedem Besuch hochzählt,
aber das bekomm ich noch hin.
wenn ich fertig bin, zeig ich nochmal mein ergebniss vor.
Übrigens, einen mySQL Server habe ich in meinem Webspace,
der Sogar bei mir zuhause liegt, und ich selbst alles bestimmen, regeln und um die sicherheit
kümmern kann.
warum ich dann keien datenbank verwende ?
ganz einfach, diese Art und weise vereinfacht mir mieine tägliche Sicherung, und außerdem
stört diese kleine Rechnerei meine Server überhaupt nicht,
und für meine wenigen Besucher lohn es sich nicht, eine eigene Tabelle anzulegen,
obwohl das vieleicht die schnellere Variante währe.

mkrasselt1
Bitte warten ..
Mitglied: mkrasselt1
02.02.2010 um 19:31 Uhr
so, meine Variante ist fertig,
ich habe auch noch eine Grafische ausgabe dazugebaut,
man hat 10 .gif dateien für alle Zahlenstände,
im Einzeiligen dokument besucher.txt kann man die besucherzahl eintragen
in iplog stehen die Ganzen IP-adresse der Besucher, die die seite aufgerufen haben.
Der Counter zählt die Besucher jeden Tag, und summiert sie.(
(mehrmalige Besuche an verschiedenen Tagen der Woche werden Tagweise als 1 gezählt)
hier die Scriptsamlung als .zip
http://michaelshomepage.dnsalias.com/download/besucherzaehler.zip
sie sollte als includ eingebunden werden, aus einer ebene darüber, so:
<?php include "./counter/counter.php"; ?>
happy Counting

mkrasselt1

PS: Die Bilder kann man natürlich ersetzen, einfach ein neues Gif in der Größe mit passendem Namen
in den Ordner Count legen
Bitte warten ..
Heiß diskutierte Inhalte
Benchmarks
M.2 SSD und RAM zu langsam
gelöst MarkowitschFrageBenchmarks14 Kommentare

Hallo zusammen, ich habe mir folgenden PC zusammengestellt : MB: ASUS - ROG Strix Z490-E Gaming Mainboard (90MB12P0-M0EAY0) CPU: ...

Peripheriegeräte
Suchen Outdoor Wandler von LWL auf Cat 7 Kabel
pavelruFragePeripheriegeräte13 Kommentare

Hallo Zusammen, wir suchen einen Outdoor Konverter welcher von einem kommenden LWL Kabel auf CAT 7 Lan Kabel weiter ...

Netzwerkgrundlagen
Verständnisfrage zu Switchen in einem Netzwerk
kaloschkeFrageNetzwerkgrundlagen13 Kommentare

Hallo, nur interessehalber: Ich habe in meinem Heimnetzwerk einen Smarthomecontroller (Innogy) an einem Switch und einen Raspberry Pi mit ...

Festplatten, SSD, Raid
Synology NAS SHR auflösen
chkdskFrageFestplatten, SSD, Raid12 Kommentare

Mahlzeit zusammen, ich hab schon ein bisschen recherchiert, allerdings keine "aktuelle" Information gefunden. Kurz zu meinem Problem: Ich habe ...

Festplatten, SSD, Raid
NAS einrichten statt Bandlaufwerk
gelöst ingo1988FrageFestplatten, SSD, Raid10 Kommentare

Hallo, ich brauche einmal eine Beratung für eine Datensicherung. Im Moment findet die Datensicherung über ein NAS mit 5 ...

Server-Hardware
Fujitsu Server bootet nicht komplett
SirEisteeFrageServer-Hardware10 Kommentare

Hallo zusammen, ich habe letztens einen Fujitsu Server Primergy RX300 S8 gekauft. Bestückt mit 2x Intel Xeon E5-2650 und ...

Ähnliche Inhalte
Datenbanken

Erstellen einer Zufallszahl per PHP-Script

144055FrageDatenbanken2 Kommentare

Hallo. Ich führe jede Nacht um 00:01 Uhr folgendes Scipt aus: <?php $servername = "xxx"; $username = "xxx"; $password ...

PHP

Übergabe Formularinhalte an externes PHP Script

gelöst schneerunzelFragePHP15 Kommentare

Hallo zusammen, ich habe heute eine relativ außergewöhnliche Frage: Und zwar geht es um folgendes: Ich habe für eine ...

PHP

PHP Script Probleme beim Ausführen von ShellExec Commands

MaxPainFragePHP1 Kommentar

Guten Abend zusammen, bezüglich PHP-Scripting habe ich derzeitig ein Problem. Ich möchte gerne auf meinem Raspberry Pi 3 ein ...

Server

PHP Script, allen Projekten (Plesk Abonnements) verfügbar machen

NullcheckFrageServer3 Kommentare

Hallo, ich habe ein etwas umfangreicheres PHP Script, das ich von einer Quelle in allen Projekten/Abonnements einbinden möchte. Hintergrund: ...

Batch & Shell

Bash: SQL Query (Wenn count 1 dann .)

gelöst nepixlFrageBatch & Shell8 Kommentare

Hallo Gentlemen, derzeit verzweifel ich etwas an einem simplen Bashscript. Scheinbar kann ichs der Bash-Zicke nicht richtig servieren, auch ...

PHP

PHP Script Interpreter als Plugin liefert keine vernünftigen Fehlermeldungen

AndroxinFragePHP

Hallo zusammen, ich sitze gerade etwas ratlos vor meinem FileMaker und habe ein Problem mit der Verwendung von PHP ...

Neue Fragen
Administrator Magazin
11 | 2020 Virtualisierung ist aus der IT nicht mehr wegzudenken. In der November-Ausgabe des IT-Administrator Magazins dreht sich der Schwerpunkt um das Thema "Server- und Storage-Virtualisierung". Darin erfahren Sie, wie sich die Virtualisierungstechnologie entwickelt hat, welche Varianten es im Bereich Server und Speicher gibt und wie ...
Neue Beiträge
Neue Jobangebote
Server- und Storage-VirtualisierungServer- und Storage-VirtualisierungBerechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid Cloud