Kann Dateiinhalte lokal nicht verändern - permission denied

Taros

Grünschnabel
Hallo,

ich habe eine textdatei [counter.txt], in die ich mit PHP eine Zahl schreibe.
Sobald meine Seite auf meinem lokalen Webserver aufgerufen wird, soll die Zahl in der Textdatei verändert werden. Das klappt auch prima online auf meinem Webserver, jedoch funktioniert es nicht auf meinem lokalen Webserver.

Dort wird folgende Fehlermedlung ausgegeben:
Warning: fopen(counter/counter.txt) [function.fopen]: failed to open stream: Permission denied in D: ..\index.php on line 13

Woran kann das liegen?

Hier der Code:
Code:
// Echte Zugriffe auf Seite auswerten
session_start();
if (!isset($clicked) or ($clicked == 0)){ //Bei erstem Pageaufruf oder wenn ein Page-Link gedrückt wurde:
	$_SESSION["clicked"] = 1; //alicked auf 1 setzen, damit beim Browser-Refresh der Counter nicht hochgezählt wird
	if(file_exists("counter/counter.txt")){ //Wenn Datei existiert...
	$counterdatei = fopen("counter/counter.txt","r"); //öffnen
		if ($counterdatei){ //Wenn Datei offen...
			$counter = fgets($counterdatei, 255); //auslesen
			$_SESSION["zugriffe"] = $counter; //Wert zuweisen und zeigen...
			fclose($counterdatei); //Schliessen
		}											 
		$counter++; //Neuen Besucher addieren
		$counterdatei = fopen("counter/counter.txt","w+"); //Datei öffnen (BESAGTE "LINE 13")
		if ($counterdatei){ //Wenn Datei offen...
			fputs($counterdatei, $counter); //Neuen Wert schreiben 
			fclose($counterdatei); //Datei schliessen
		}
		else echo "Konnte nicht in Counterdatei schreiben!";
	}
	else{
	echo "Vermisse "counter.txt""; //Wenn Datei vermisst wird, melden!
	}
}

Ich benutze
PHP 5.0.5
und IIS

Danke für jeden Tipp.

Happy coding
Chris
 
Das liegt daran das Du für diese Datei wohl nicht die nötigen Rechte hast.

Chmod (0755) ist glaub lesen und ausführen
Chmod (0777) ist lesen , ausführen und schreiben

Wobei mich das schon wundert das es auf deinen Online Webserver geht und nicht auf deinen lokalen. Bei mir war das Problem immer anders rum als Webserver nehm ich aber auch Appache.
 
Hallo,

danke für die Infos. Ich habe die Dateiattribute entsprechend geändert. Das ging nur auf dem FTP. Dann habe ich die Datei von dort in mein lokales Verzeichnis auf meinem Rechner kopiert. Leider keine Veränderung. Ich bekomme immer noch keine Zugriffsrechte.

Jemand eine andere Idee?

Vor kurzem war mein Rechner weggeraucht und ich habe das System neu eingerichtet. Bei der Gelegenheit habe ich auch die neue Version von PHP installiert. Vielleicht habe ich was in meiner php.ini vergessen? Gibts da etwas, das ich auf jeden Fall eingestellt haben müsste? Ich habe nur die globalen Variablen in der INI eingeschaltet, sonst hab ich nichts verändert.

Happy coding
Chris
 
Zuletzt bearbeitet:
Liegt es evtl. auch an den Serverrechte Vergaben? Habe ich da was vergessen?
Eigentlich dürfen díe Scripte alles.

Happy coding
Chris
 
Hallo, hier bin ich wieder.

Ich liebe Foren, sie sind eine der besten Erfindungen des Internets.

Es gibt aber zwei Dinge die ich hasse:
1. Themenüberschriften, die einem auch gar nichts über das Anliegen des Verfassers sagen. Der Klassiker: "Ich habe ein Problem!"
2. Wenn der Verfasser sein Problem alleine löst und die Lösung nicht gepostet wird oder auch hier Punkt 1 gerne genommen wird: "Danke, habs gefunden." oder "Hat sich erleidigt". Wobei man hier bereits von Erfolg sprechen kann, wenn sich der Verfasser überhaupt noch meldet.

Das nur als Einleitung. Da ich aber nicht zu diesen Leuten gehören will, hier die Lösung für mein Problem:

Es lag an den Zugriffsrechten in meinem System (XP Pro). Damit PHP auf meine Datei zugreifen kann, muss ich die Datei oder den ganzen Ordner freigeben.
- Ich bin dazu in den Windows Explorer gegangen.
- Dann habe ich mit der rechten Maustaste die Eigenschaften des Ordners aufgerufen, in dem meine Datei steckt.
- Nun habe ich den Reiter "Sicherheit" aufgerufen.
- Dort habe ich den User "Jeder" eingerichtet, unter "Hinzufügen/Erweitert/Jetzt suchen" - > "Jeder" auswählen und beide Fenster mit OK bestätigen
- Nun noch die Schreibrechte für "Jeder" aktivieren und fertig!

Falls Ihr unter EIgenschaften den Punkt "Sicherheit" nicht findet, dann geht in das Windows Explorer Menu unter "Extras/Ordneroptionen/Ansicht".
Dort "deaktiviert" Ihr das vierte Häckchen unter "Dateien und Ordner". Es heisst "Einfache Dateifreigabe verwenden". Nun erscheint auch der Reiter "Sicherheit" unter Eigenschaften für Dateien und Ordner.

Viele Grüße und danke für die Hilfeversuche
Chris

PS: Gruß an FXK für seinen Tipp!
 
Zurück