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, 2416 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 10
Partitonen werden nicht angezeigt (3)

Frage von Alex.Sp zum Thema Windows 10 ...

Windows Server
gelöst GPO wird übernommen aber nicht angezeigt (11)

Frage von stefts zum Thema Windows Server ...

Server
gelöst Internetzugriff auf Synology Diskstation Ordner werden nicht angezeigt (1)

Frage von Coreknabe zum Thema Server ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...