[php]warning fopen

warning fopen [php] - PHP - Programmation

Marsh Posté le 12-01-2006 à 16:46:00    

re-Bonjour
j'ai cette erreur,
Warning: fopen(fichier.csv): failed to open stream: Permission denied in /home/icare/www/administration/gestion_requetes.php on line 186
quelqu'un connait il la solution?
Comment donner les droits qu'il manque?
merci
 
mon code:
 
if($nom_requete AND $requete)
 {
 $nomrequete='fichier.csv';
 $fichier=fopen($nomrequete,'x+');
 $requete_utilisateur=mysql_query($requete);
 while($donnees=mysql_fetch_array($requete_utilisateur))
  {    
  $aecrire=implode(';',$donnees).'\n';
  fputs($fichier,"$aecrire" );
  }
 fclose($fichier);  
 echo '<a href="'.$nomrequete.'">fichier</a>';
 }

Message cité 1 fois
Message édité par come18 le 12-01-2006 à 17:42:17
Reply

Marsh Posté le 12-01-2006 à 16:46:00   

Reply

Marsh Posté le 12-01-2006 à 16:48:48    

come18 a écrit :

Comment donner les droits qu'il manque?

avec chown et/ou chmod, mais ce n'est pas du php, ce sont des commandes système

Reply

Marsh Posté le 12-01-2006 à 16:50:15    

heu en fait j'avais deja mis un chmod 777 dans le repertoire courant du ftp
mais ca n'a rien changé.

Reply

Marsh Posté le 12-01-2006 à 16:52:57    

Il existe déjà, ton fichier, non?:o

Citation :

x+ :  Crée et ouvre le fichier en lecture et écriture ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT  pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2, et fonctionne uniquement avec des fichiers locaux.


Message édité par skeye le 12-01-2006 à 16:53:30

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-01-2006 à 16:54:48    

non non il existe pas, je dois le creer dynamiquement.

Reply

Marsh Posté le 12-01-2006 à 16:55:36    

Tu es sûr?:o
Tu as essayé en mode w plutot que x+?:o


Message édité par skeye le 12-01-2006 à 16:56:23

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-01-2006 à 16:57:21    

je reessaye alors, ;)

Reply

Marsh Posté le 12-01-2006 à 16:58:14    

ben non c'est pareil.. :(

Reply

Marsh Posté le 07-04-2006 à 23:06:43    

Bon je débarque un peu tard, mais j'ai un problème similaire.
Pour le résoudre il faut spécifier de manière absolue le chemin du fichier, dans ton cas c'est :
$nomrequete = "/home/icare/www/administration/fichier.csv"


---------------
Un bon script vaut tous les clicks du monde. | Errements Alternatifs
Reply

Marsh Posté le 08-04-2006 à 16:37:18    

non le chemin du fichier est correct. il n'est pas obligé de mettre le chemin absolue
 
tu as un pb c'est qu'il faut mettre ton rep /administration en chmod 777 et ca c pas génial qd même.
 
essaie plutot de le créer dans un autre rep.
 
poru récapituler tu dois avoir le dossier qui contient ton ficheir en chmod 777 et l'ouvrir ac le mode w au lieu de x+
 
bye


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 08-04-2006 à 16:37:18   

Reply

Marsh Posté le 08-04-2006 à 20:08:09    

J'utilise ce code :

<?php
class Queue{
 
  protected $queue;
  private $filename = "./test.html";
 
  function __construct(){
    if (file_exists($this->filename)){
      $this->queue = file($this->filename);
    }else{
      $this->queue = array();
    }
  }
 
  function __destruct(){
    if (!file_exists($this->filename)){
      $fp = fopen ($this->filename, "w" );
      fclose($fp);
    }
    file_put_contents( $this->filename, $this->queue );
  }
 
}
$q = new Queue;
?>


 
ces droits :
 

drwxr-xr-x   23 root root   856 avr  6 22:30 /var/
drwxrwxr-x  10 apache apache  392 avr  7 22:31 /var/www/
drwxrwxr-x   5 apache apache    392 avr  8 19:58 /var/www/html/
-rw-r--r--  1 apache apache  453 avr  7 23:38 /var/www/html/test.php
 
apache    4126  0.0  0.7  17936  8112 ?        S    09:52   0:00 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2 -DHAV


et  

Warning: fopen(./test.html) [function.fopen]: failed to open stream: Permission denied in /var/www/html/test.php on line 17
 
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/html/test.php on line 18
 
Warning: file_put_contents(./test.html) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/html/test.php on line 20


 
Je comprends rien, avec ce code ça fonctionne !  :pt1cable:  

<?php
$filename = "test.html";
      $fp = fopen ($filename, "w" );
      fclose($fp);
?>


---------------
Un bon script vaut tous les clicks du monde. | Errements Alternatifs
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed