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

Webcounter wird nicht angezeigt

Frage Entwicklung PHP

Mitglied: anfaenger500

anfaenger500 (Level 1) - Jetzt verbinden

10.03.2011 um 00:16 Uhr, 2431 Aufrufe, 2 Kommentare

Hallo,

bin im Bereich PHP Anfänger und habe für die Homepage eines Bekannten einen Webcounter gebastelt.
Der Counter hat mal funktioniert und nachdem ich den Ordner von neu2 auf Besucherzaehler umbenannt habe wird mir der Counter nicht mehr angezeigt.

PHP funktioniert auf dem Webserver. Hoster ist Strato.

PHP Version: PHP Version 4.4.9
System: SunOS localhost 5.8 Generic_108528-17 sun4u

Habe den Webcounter folgendermaßen in meine index.php implementiert
01.
<!-- Besucherzaehler - Anfang --> 
02.
<?php include "Besucherzaehler/counter.php"; ?> 
03.
<!-- Besucherzaehler - Ende -->
Anbei der Code vom Counter:
01.
<? 
02.
// ip-sperre in sekunden (Standard 1Jahr) 
03.
$expire = 31536000; 
04.
$filename = "/Besucherzaehler/counter.txt"; 
05.
 
06.
if (file_exists($filename))  
07.
08.
   $ignore = false; 
09.
   $current_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "no agent"; 
10.
   $current_time = date ("H:i:s"); 
11.
   $current_ip = $_SERVER['REMOTE_ADDR'];  
12.
       
13.
   // daten einlesen 
14.
   $c_file = array(); 
15.
   $handle = fopen($filename, "r"); 
16.
    
17.
   if ($handle) 
18.
19.
      while (!feof($handle))  
20.
21.
         $line = trim(fgets($handle, 4096));  
22.
		 if ($line != "") 
23.
		    $c_file[] = $line;		   
24.
25.
      fclose ($handle); 
26.
27.
   else 
28.
      $ignore = true; 
29.
    
30.
   // bots ignorieren    
31.
   if (substr_count($current_agent, "bot") > 0) 
32.
      $ignore = true; 
33.
	   
34.
    
35.
   // hat diese ip einen eintrag in den letzten expire sec gehabt, dann igornieren? 
36.
   for ($i = 1; $i < sizeof($c_file); $i++) 
37.
38.
      list($counter_ip, $counter_time) = explode("||", $c_file[$i]); 
39.
	  $counter_time = trim($counter_time); 
40.
	   
41.
	  if ($counter_ip == $current_ip && $current_time-$expire < $counter_time) 
42.
43.
	     // besucher wurde bereits gezählt, daher hier abbruch 
44.
		 $ignore = true; 
45.
		 break; 
46.
47.
48.
    
49.
   // counter hochzählen 
50.
   if ($ignore == false) 
51.
52.
      if (sizeof($c_file) == 0) 
53.
54.
	     // wenn counter leer, dann füllen       
55.
		 $add_line1 = date("W") . "-1||" . date("d") . "-1||" . date("m") . "-1||" . date("Y") . "-1||" . $current_time . "||" . "1||1" . "\n"; 
56.
		 $add_line2 = $current_ip . "||" . date ("d.m.Y") . "||" . $current_time . "\n"; 
57.
		  
58.
		 // daten schreiben 
59.
		 $fp = fopen($filename,"w+"); 
60.
		 if ($fp) 
61.
62.
		    flock($fp, LOCK_EX); 
63.
			fwrite($fp, $add_line1); 
64.
		    fwrite($fp, $add_line2); 
65.
			flock($fp, LOCK_UN); 
66.
		    fclose($fp); 
67.
68.
		  
69.
		 // werte zur verfügung stellen 
70.
		 $week = $day = $month = $year = $all = $record = 1; 
71.
		 $record_time = $current_time; 
72.
		 $online = 1; 
73.
74.
      else 
75.
76.
	     // counter hochzählen 
77.
		 list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", $c_file[0]); 
78.
		 
79.
		 // week 
80.
		 $week_data = explode("-", $week_arr); 
81.
		 $week = $week_data[1]; 
82.
		 if ($week_data[0] == date("W")) $week++; else $week = 1; 
83.
		 
84.
		 // day 
85.
		 $day_data = explode("-", $day_arr); 
86.
		 $day = $day_data[1]; 
87.
		 if ($day_data[0] == date("d")) $day++; else $day = 1; 
88.
		   
89.
		 // month 
90.
		 $month_data = explode("-", $month_arr); 
91.
		 $month = $month_data[1]; 
92.
		 if ($month_data[0] == date("m")) $month++; else $month = 1; 
93.
		  
94.
		 // year 
95.
		 $year_data = explode("-", $year_arr); 
96.
		 $year = $year_data[1]; 
97.
		 if ($year_data[0] == date("Y")) $year++; else $year = 1; 
98.
		   
99.
		 // all 
100.
		 $all++; 
101.
		  
102.
		 // neuer record? 
103.
		 $record_time = trim($record_time); 
104.
		 if ($day > $record) 
105.
106.
		    $record = $day; 
107.
			$record_time = $current_time; 
108.
109.
		  
110.
		 // speichern und aufräumen und anzahl der online leute bestimmen 
111.
		  
112.
		 $online = 1; 
113.
		  
114.
		 // daten schreiben 
115.
		 $fp = fopen($filename,"w+"); 
116.
		 if ($fp) 
117.
118.
		    flock($fp, LOCK_EX); 
119.
			$add_line1 = date("W") . "-" . $week . "||" . date("d") . "-" . $day . "||" . date("m") . "-" . $month . "||" . date("Y") . "-" . $year . "||" . $record_time . "||" . $all . "||" . $record . "\n" ;		  
120.
		    fwrite($fp, $add_line1); 
121.
		  
122.
		    for ($i = 1; $i < sizeof($c_file); $i++) 
123.
124.
               list($counter_ip, $counter_time) = explode("||", $c_file[$i]); 
125.
	   
126.
	           // übernehmen 
127.
		   	   if ($current_time-$expire < $counter_time) 
128.
129.
	              $counter_time = trim($counter_time); 
130.
				  $add_line = $counter_ip . "||" . $counter_time . "||" . date ("d.m.Y") . "\n"; 
131.
			      fwrite($fp, $add_line); 
132.
			      $online++; 
133.
134.
135.
		    $add_line = $current_ip . "||" . $current_time . "||" . date ("d.m.Y") . "\n"; 
136.
		    fwrite($fp, $add_line); 
137.
		    flock($fp, LOCK_UN); 
138.
		    fclose($fp); 
139.
140.
141.
142.
   else 
143.
144.
      // nur zum anzeigen lesen 
145.
	  if (sizeof($c_file) > 0) 
146.
	     list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", $c_file[0]); 
147.
	  else 
148.
		 list($week_arr, $day_arr, $month_arr, $year_arr, $record_time, $all, $record) = explode("||", date("W") . "-1||" . date("d") . "-1||" . date("m") . "-1||" . date("Y") . "-1||" . $current_time . "||" . "1||1"); 
149.
	   
150.
	  // week 
151.
	  $week_data = explode("-", $week_arr); 
152.
	  $week = $week_data[1]; 
153.
	   
154.
	  // day 
155.
	  $day_data = explode("-", $day_arr); 
156.
      $day = $day_data[1]; 
157.
	   
158.
	  // month 
159.
	  $month_data = explode("-", $month_arr); 
160.
	  $month = $month_data[1]; 
161.
	   
162.
	  // year 
163.
	  $year_data = explode("-", $year_arr); 
164.
	  $year = $year_data[1]; 
165.
	   
166.
	  $record_time = trim($record_time); 
167.
	   
168.
	  $online = sizeof($c_file) - 1; 
169.
170.
?> 
171.
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0"> 
172.
		<tr> 
173.
			<td colspan="2"> 
174.
	 			<p align="center"> 
175.
					<font face="Verdana" size="3"><br>		 
176.
						 Sie sind der <? echo $all; ?>. Besucher auf unserer Seite!	 
177.
					</font>  
178.
				</p> 
179.
			</td> 
180.
		</tr> 
181.
</table> 
182.
<? 
183.
184.
?>
Inhalt der counter.txt:
Anhand des Inhaltes kann man sehen, dass es schonmal geklappt hat und jetzt nicht mehr.
01.
09-6||03-6||03-6||2011-6||21:00:10||8364||8370 
02.
 
03.
80.187.106.200||19:37:04||03.03.2011 
04.
91.34.238.53||20:20:18||03.03.2011 
05.
88.78.34.172||20:24:17||03.03.2011 
06.
79.254.128.240||20:34:23||03.03.2011 
07.
83.133.125.202||21:00:10||03.03.2011
Kann mir bitte einer weiterhelfen!

Danke und Grüße
Mitglied: Arano
10.03.2011 um 16:52 Uhr
Hallo Anfaenger500,

Habe nur mal eben gaanz schnell drauf geguckt und ich frage mich was denn passiert wenn:
01.
if (file_exists($filename)) 
fehlschlägt ?
Konnte auf die schnelle keinen passenden else-Block finden !

Und zweitens, ändere "<? ... ?>" in "<?php ... ?>" !
Die Short-Open-Tags (erstere) sollten nur auf Entwicklungsumgebungen verwendet werden, das sie bei eurem Hoster nun auch aktiviert sind muss nicht immer so bleiben !
Also am besten einfach immer "<?php .. ?>" benutzen, dann kann nichts schief gehen - jedenfalls nicht deswegen *fg*


~Arano
Bitte warten ..
Mitglied: Blueball
11.03.2011 um 10:48 Uhr
Hallo Anfaenger500,

bitte ändere mal den absoluten Pfad auf einen relativen dann sollte es funktionieren. Es wird nicht der root vom Webserver sondern der vom Server verwendet.

alt
01.
$filename = "/Besucherzaehler/counter.txt"; 
neu
01.
$filename = "Besucherzaehler/counter.txt"; 
mfg Steve
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst Exchange Server - User bekommt öffentlichen Ordner nicht angezeigt (4)

Frage von infostud zum Thema Exchange Server ...

Administrator.de Feedback
gelöst Fragen werden nicht angezeigt? (8)

Frage von Lochkartenstanzer zum Thema Administrator.de Feedback ...

Windows 10
gelöst Windows 10 kein internetzugriff wird angezeigt trotz Internet (3)

Frage von fensterbauer zum Thema Windows 10 ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...