Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Problem mit PHP Besucherzähler

Frage Entwicklung PHP

Mitglied: gamerff

gamerff (Level 1) - Jetzt verbinden

09.08.2014 um 21:11 Uhr, 1337 Aufrufe, 9 Kommentare

Hallo Leute, ich habe ein Problem mit meinem PHP besucherzähler

$gesamt = fopen("gesamt.txt","r+");
$gesamt = fgets($gesamt, 10);
rewind($gesamt);
$gesamt=$zahl+$gesamt;
fwrite($gesamt, $testen);
fclose($gesamt);

und zwar möchte ich immer den Zähler ($zahl) der die Besucher zählt zu den Gesamt Besuchern (gesamt) dazurechnen und in eine txt datei speichern.
Alles funktioniert super bis auf den Punkt wen ich $zahl auf 0 setze setzt sich automatisch der Gesamt Zähler auch auf 0 obwohl es den wert in einer txt Datei gespeichert hat.
Mitglied: colinardo
10.08.2014, aktualisiert 11.08.2014
Moin,
dein Fehler ist, das du deinen File-Pointer ($gesamt) in der zweiten Zeile überschreibst ! Dann kann natürlich Zeile 3, 5 und 6 nicht mehr Funktionieren da die Variable $gesamt keinen File-Pointer mehr enthält sondern den Inhalt der Texdatei ! Und wo ist bitte $testen deklariert ?
So kann das auf keinen Fall laufen.
Nutze also separate Variablen für Pointer und Textinhalt.

Grüße Uwe
Bitte warten ..
Mitglied: flow.ryan
10.08.2014 um 13:22 Uhr
Hallo,

du machst einige Fehler:
1. Du verwendest die Variable $gesamt zu häufig - bzw. für unterschiedliche Typen!
2. Du möchtest $testen in die Datei "gesamt.txt" schreiben - das geht nicht, weil $gesagt kein File-Stream bzw. Object mehr ist, sondern nun die Zahl deiner Besucher innehält -> Ich verweise hier auf Problem 1!
3. Was soll $zahl machen? Die ist aktuell nicht initialisiert bzw. deklariert - ergo hat sie den Wert 0!
4. Wenn du einfach den Counter um eine Stelle erhöhen möchtest geht auch $gesamt++;


Schau dir doch das hier einmal an:
http://www.selfphp.de/praxisbuch/praxisbuch.php?group=39


Ansonsten:
01.
<?php 
02.
$besucher = 0; 
03.
 
04.
$datei = fopen("gesamt.txt","r+"); 
05.
$besucher = fgets($datei, 10); 
06.
rewind($datei); 
07.
$besucher++; 
08.
fwrite($datei, $besucher); 
09.
fclose($datei); 
10.
?>

Das sollte es gewesen sein - ungetestet!

LG,
Florian
Bitte warten ..
Mitglied: gamerff
11.08.2014 um 08:05 Uhr
Ja das ist ja der Besucherzähler den ich verwende (Link). Ich möchte noch die Funktion "Gestern" und "Gesamt" hinzufügen.
Bitte warten ..
Mitglied: flow.ryan
11.08.2014 um 08:09 Uhr
Hallo,

das wirst du so einfach nicht hinbekommen!
Schau dir doch mal das hier an:
http://www.html.de/threads/php-besucherzaehler-mit-cookie-sperre-und-oh ...

LG,
Florian
Bitte warten ..
Mitglied: gamerff
11.08.2014 um 09:14 Uhr
Danke für den Link, weist du ob ich den Besucherzähler so abändern kann das ich den auf meiner HTML Webseite ausgeben kann ?
Bitte warten ..
Mitglied: gamerff
11.08.2014 um 10:57 Uhr
Der Counter den du mir grade vorgeschlagen hast (Link) ist ziemlich umstendlich.
Ich habe ja meinen Counter der Seinen Wert in einer TXT Datei (counter.txt) speichert. Kann ich da nicht einfach sagen das wen es 0:00 Uhr der Aktuelle Wert aus der counter.txt ausgelesen wird und in die gestern.txt reingeschrieben wird ?
Bitte warten ..
Mitglied: colinardo
11.08.2014, aktualisiert um 11:36 Uhr
Zitat von gamerff:

Der Counter den du mir grade vorgeschlagen hast (Link) ist ziemlich umstendlich.
Aber dafür korrekte Ergebnisse, was bei deiner Variante vermutlich nicht der Fall ist, hier zählt dann quasi jeder Seitenaufruf egal wie oft einzelner User die Seite aufruft, was das Ergebnis verfälscht. Also halte dich an die gängigen Prozeduren für Besucherzähler. Du musst hier das Rad nicht neu erfinden. Die vorhandenen Scripte sind erprobt und bringen vor allem "richtige" Ergebnisse !

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
11.08.2014, aktualisiert um 13:03 Uhr
Ein einfaches Script das den Counter für das jeweilige Datum zusammen in einer Datei speichert kannst du z.B. so realisieren:
Die Logdatei sieht dann so aus:
09.08.2014;200 
10.08.2014;334 
11.08.2014;22
hinter dem Datum wird dann der Counter abgelegt und bei jedem Aufruf entsprechend dem aktuellen Datum aktualisiert.
01.
<?php 
02.
session_set_cookie_params(3600); 
03.
session_start(); 
04.
$logpath = "/test_counter.txt"; 
05.
 
06.
if (!$_SESSION['counter_ip']){ 
07.
	$strLog = file_get_contents($logpath); 
08.
	$today = date('d.m.Y'); 
09.
	if (preg_match("/^$today/m",$strLog)){ 
10.
		$result = preg_match("/^$today;(\d+)/m",$strLog,$matches); 
11.
		$counter = $matches[1]; 
12.
		$counter++; 
13.
		$strNewLog = preg_replace("/(^$today;)(\d+)/m",'${1}'.$counter,$strLog); 
14.
		file_put_contents($logpath,$strNewLog); 
15.
	}else{ 
16.
		$f = fopen($logpath,"a"); 
17.
		fwrite($f,$today.';1'); 
18.
		fclose($f); 
19.
20.
	$_SESSION['counter_ip'] = true; 
21.
22.
?>
Zu beachten ist, dass im Script das Cookie für eine Stunde gesetzt wird (3600s), also in diesem Zeitraum für diesen User nur einmal gezählt wird. User die Cookies deaktiviert haben sind im Script jetzt nicht berücksichtigt.

Ich persönlich würde aber zu einer Datenbank raten !

Grüße Uwe
Bitte warten ..
Mitglied: gamerff
11.08.2014 um 13:01 Uhr
In meinem Beushcerzähler den ich habe, wird die IP Adresse ausgelesen und in eine ip.txt getragen und da fü 24h gespeert.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...