Problem mit fopen()

maltor

Mitglied
Ich habe ein Problem mit fopen(). Es soll eine log.txt Datei erstellt werden in der zeit, user, password Daten gespeichert werden. Dabei wurde folgende Fehlermeldung ausgegeben:

Warning: fopen(log.txt): failed to open stream: Permission denied in /usr/local/apache/htdocs/mb/admin.php on line 20

Warning: fwrite(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/mb/admin.php on line 22

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/mb/admin.php on line 23


Mein Quelltext:


PHP:
<?php
include ("db_connect.php"); 
include ("session_login.php");
include ("vars.php");
 
if ($user != "" && $password != "") {
$timestamp = time();
$zeit = date("d.m.Y - H:i",$timestamp);
$logschreib = $zeit." ".$user." ".$password."\n"; 
 
include ("qry_login.php");
include ("session_qry.php");
 
if ($user == $qry_user && $password == $qry_password ) {
 
$fp = fopen("log.txt",a);
 
fwrite($fp, $logschreib);
fclose ($fp); 
 
 
 
	include ("begruesung.php");
 
}
else {
echo "Sie haben f&uuml;r diesen Bereich kein Zutritt!";
}
}
 
else {
 
echo "Bitte Benutzer und Password in die Felder eingeben!"; 
} 
?>
 
Ich habe der Datei keine Rechte gegeben.
Ich habe auch keine Ahnung von Rechten, da ich erst seit kurzen php mache.

Auf mein Testsystem lauf es. Aber wenn ich es hochgeladen habe gekomme ich die Fehlermeldung. Kann fopen() vom Anbieter gesperrt sein?
 
Wenn Du Dir mal Deine Fehlermeldung genau anschaust und des englischen mächtig bist, dann wirst Du feststellen, dass "Permission denied" soviel wie "Erlaubnis verweigert" bedeutet. Ich denke auch, dass Du entweder keine Schreibrechte für die Datei bzw. das Verzeichnis, in dem die Datei liegt hast. Mit chmod() kannst Du die Zugriffsrechte ändern.

redlama
 
PHP:
if ($user == $qry_user && $password == $qry_password ) {
   
   
   $W = chmod ("log.txt", 0755);
   $fp = fopen("$w",a);
 
   fwrite($fp, $logschreib);
   fclose ($fp);  
  
  
   
	include ("begruesung.php");
   
}

Wie wird das mit chmod() umgesetzt? So villeicht? So bekomme ich auch eine Fehlermeldung.
 
Wie lädst du dein Skript hoch?
Mit einem ftp-Manager?
Überraschung :p

Ne im Ernst, jeder vernünftige ftp-Manager gibt dir die Möglichkeit, den Dateien auf dem Server die Rechte zu zuweisen.

Musst halt einfach mal ein wenig schauen...

und außerdem gilt: $W != $w

shutdown
 
Dein Script kann diese Datei erst dann anlegen, wenn der Ordner auf 777 steht. Bzw. halt die rechte für schreiben. Wenn die Datei schon existiert, reicht es wenn die Datei 777 hat.
 
Danke!



Es funktioniert nun. Ich hab mit meinem FTP-Programm den Dateien die Rechte zugewiesen.



Letzt habe es auch endlich mit den Rechten verstanden. Das wusste ich noch nicht, bin ja auch erst ein Anfänger.



Nochmals vielen Dank an alle!
 
Zurück