Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1910 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Creation de fichier en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Creation de fichier en php

n°1020117
celestin14​09
Posté le 21-03-2005 à 19:55:43  profilanswer
 

Voila je cherche a creer un fichier sur le serveur mais pas moyen de le creer pouvez vous me corriger
 

Code :
  1. <?php
  2. function infoFichier($fichier){
  3.  if(!file_exists($fichier)){
  4.   print "$fichier n'existe pas<br>";
  5.   return;
  6.  }
  7.  print "$fichier ".( is_file($fichier)? "est":"n'est pas" )." un fichier<br>";
  8.  print "$fichier ".( is_dir($fichier)? "est":"n'est pas" )." un dossier<br>";
  9.  print "$fichier ".( is_readable($fichier)? "peut":"ne peut pas" )." etre lu<br>";
  10.  print "$fichier ".( is_writable($fichier)? "peut":"ne peut pas" )." etre modifie<br>";
  11.  print "$fichier ".( is_executable($fichier)? "est":"n'est pas" )." executable<br>";
  12.  print "$fichier fait".( filesize($fichier))." octets<br>";
  13.  print "Le dernier acces a $fichier remonte a ".date("D d M Y g:i A",fileatime($fichier))."<br>";
  14.  print "$fichier a ete modifie ".date("D d M Y g:i A",filemtime($fichier))."<br>";
  15.  print "$fichier a ete cree/modifie ".date("D d M Y g:i A",filectime($fichier))."<br>";
  16. }
  17. function creationFichier(){
  18.  print("creation<br>" );
  19.  touch("compteur.txt" ); // Creation du fichier
  20.  $file_compteur = fopen("./compteur.txt","w" ); // Ouverture du fichier
  21.  flock($file_compteur,LOCK_EX); // Verrouiallge exclusif sur le fichier
  22.  fwrite($file_compteur,"1" ); // Initialisation du compteur
  23.  flock($file_compteur,LOCK_UN); // Liberation du verrouillage
  24.  fclose($file_compteur); // Fermeture du fichier
  25. }
  26. function incrementeCompteur(){
  27.  $file_compteur = fopen("./compteur.txt","r" ); // Ouverture du fichier
  28.  flock($file_compteur,LOCK_EX); // Verrouiallge exclusif sur le fichier
  29.  $num = (integer)fgets($file_compteur,1024);
  30.  print "$num.<br>";
  31.  fclose($file_compteur); // Fermeture du fichier
  32.  // On modifie le compteur
  33.  $file_compteur = fopen("./compteur.txt","w" ); // Ouverture du fichier
  34.  fwrite($file_compteur,$num+1); // Initialisation du compteur
  35.  flock($file_compteur,LOCK_UN); // Liberation du verrouillage
  36.  fclose($file_compteur); // Fermeture du fichier
  37. }
  38. if(!file_exists("./compteur.txt" )){
  39.  creationFichier();
  40. }else{
  41.  incrementeCompteur();
  42. }
  43. infoFichier("./compteur.txt" );
  44. ?>


 
Merci d'avance

mood
Publicité
Posté le 21-03-2005 à 19:55:43  profilanswer
 

n°1020118
celestin14​09
Posté le 21-03-2005 à 19:57:00  profilanswer
 

PS: le serveur est sous linux et voici le resultat affiche
 
creation
./compteur.txt n'existe pas

n°1020124
Kyle_Katar​n
Posté le 21-03-2005 à 20:02:22  profilanswer
 

Tu as les droit en écriture ?
chmod 707 ?

n°1020132
celestin14​09
Posté le 21-03-2005 à 20:06:39  profilanswer
 

Kyle_Katarn a écrit :

Tu as les droit en écriture ?
chmod 707 ?


En fait je sais pas car il veut meme pas creer le fichier c bien ca le probleme

n°1020139
celestin14​09
Posté le 21-03-2005 à 20:16:42  profilanswer
 

Code :
  1. if(touch("compteur.txt" )){ // Creation du fichier
  2.     print "COUCOU<br>";
  3. }


 
Si je met ce code il m'affiche jamais "coucou"  :??:

n°1020150
esox_ch
Posté le 21-03-2005 à 20:30:46  profilanswer
 

T'a pas les droit en ecriture :p, donne les droit en ecriture au demon httpd sinon t mal :p


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020152
celestin14​09
Posté le 21-03-2005 à 20:32:53  profilanswer
 

esox_ch a écrit :

T'a pas les droit en ecriture :p, donne les droit en ecriture au demon httpd sinon t mal :p


g fait ca mais ca marche toujours pas:
 

Code :
  1. function creationFichier(){
  2.  print("creation<br>" );
  3.  if(touch("compteur.txt" )){ // Creation du fichier
  4.   print "COUCOU<br>";
  5.  }
  6.  $file_compteur = fopen("./compteur.txt","w" ); // Ouverture du fichier
  7.  chmod ("./compteur.txt", 0755);
  8.  flock($file_compteur,LOCK_EX); // Verrouiallge exclusif sur le fichier
  9.  fwrite($file_compteur,"1" ); // Initialisation du compteur
  10.  flock($file_compteur,LOCK_UN); // Liberation du verrouillage
  11.  fclose($file_compteur); // Fermeture du fichier
  12. }

n°1020154
celestin14​09
Posté le 21-03-2005 à 20:34:07  profilanswer
 

ah non g du mal comprendre c'est du cote du serveur alors que je dois donner les droits d'ecriture c'est ca??

n°1020172
esox_ch
Posté le 21-03-2005 à 20:46:19  profilanswer
 

tu dois donner les droits d'ecriture dans le ./ , donc en gros tu fais un chmod('../madir', 0755);
 
Ou alors tu fais ca proprement => tu changes le propriétaire/le groupe du dossier pour que httpd soit dedans et tu enleve les droit d'ecriture a tout le monde, et tu les donne a group/owner


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020197
celestin14​09
Posté le 21-03-2005 à 20:55:35  profilanswer
 

Code :
  1. chmod("../Site",0777);
  2. if(!file_exists("./compteur.txt" )){
  3.  creationFichier();
  4. }else{
  5.  incrementeCompteur();
  6. }
  7. infoFichier("./compteur.txt" );


 
meme en faisant ceci je n'y arrive plus  :pt1cable:  :pt1cable:

mood
Publicité
Posté le 21-03-2005 à 20:55:35  profilanswer
 

n°1020200
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 20:58:04  profilanswer
 

regardes le manuel php sur la fonction touch qui n'a pas du tout le meme résultat que la commande touch sous linux/unix :)
je pense que ton probleme vient de la

n°1020208
celestin14​09
Posté le 21-03-2005 à 21:04:20  profilanswer
 

benamoubeach a écrit :

regardes le manuel php sur la fonction touch qui n'a pas du tout le meme résultat que la commande touch sous linux/unix :)
je pense que ton probleme vient de la


 de toute facon touch sous linux cree bien en fichier et de plus je crois que fopen permet aussi la creation d'un fichier si ce dernier n'existe pas    
moi je pense aussi que c une histoire de droit car lorsque j'utilise ma fonction infoFichier sur le dossier il me dit qu'il ne peut pas etre modifie hors je fait bien un

Code :
  1. chmod("../Site", 0777);

La j'avoue que je m'y perd :pt1cable:

n°1020214
esox_ch
Posté le 21-03-2005 à 21:08:31  profilanswer
 

Affiche les droit de tout les fichier


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020219
celestin14​09
Posté le 21-03-2005 à 21:13:29  profilanswer
 

je viens de faire ceci:
 

Code :
  1. if(chmod("../Site/",0777)){
  2.         print "chmod OK<br>";
  3. }else{
  4. print "chmod KO<br>";
  5. }
  6. if(!file_exists("./compteur.txt" )){
  7. creationFichier();
  8. }else{
  9. incrementeCompteur();
  10. }
  11. infoFichier("./compteur.txt" );
  12. infoFichier("../Site" );


 
et il m'affiche ceci:
 
chmod KO
creation
beu
./compteur.txt n'existe pas
../Site n'est pas un fichier
../Site est un dossier
../Site peut etre lu
../Site ne peut pas etre modifie
../Site est executable
../Site fait 4096 octets
Le dernier acces a ../Site remonte a Mon 21 Mar 2005 8:00 PM
../Site a ete modifie Mon 21 Mar 2005 7:47 PM
../Site a ete cree/modifie Mon 21 Mar 2005 7:47 PM

n°1020220
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 21:15:51  profilanswer
 

touch justement sous php ne crée pas un fichier et c'est la ou tu te fourvoies :).
Je suis d'accord que si tu fais ton fopen avec le flag w comme tu le fais, ca le crée tout seul, donc tu peux enlever ton touch(). Ensuite, est-ce que ton fichier est créé ?? Affiche les droits du dossier .

n°1020223
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 21:16:28  profilanswer
 

voila, le probleme vient du chmod de Site :)

n°1020224
esox_ch
Posté le 21-03-2005 à 21:18:55  profilanswer
 

ouep :D Faut remonter plus haut dans l'arborescence ou alors te donner les droit directement sous unix


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020225
celestin14​09
Posté le 21-03-2005 à 21:19:46  profilanswer
 

benamoubeach a écrit :

voila, le probleme vient du chmod de Site :)


Ok alors pourquoi lorsque je fait un chmod 777 sur le dossier les droits ne sont pas modifie: chmod KO

n°1020228
esox_ch
Posté le 21-03-2005 à 21:22:23  profilanswer
 

Parceque si tu n'es pas le proprio du fichier tu peux pas changer les droits :p


Message édité par esox_ch le 21-03-2005 à 21:22:43

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020233
celestin14​09
Posté le 21-03-2005 à 21:28:45  profilanswer
 

esox_ch a écrit :

ouep :D Faut remonter plus haut dans l'arborescence ou alors te donner les droit directement sous unix


Oui mais je n'est pas acces au serveur(unix)
En fait je vais expliquer: ( j'aurais du le faire surment avant  :ange: )
Je dois developper une extension d'un site. en fait il y a dans le site de depart une partie administration ou je met le lien de mon extension.
Mon extension quand a elle se trouve sur un serveur ftp que possede le proprietaire du site mais je peux sur ce serveur ajouter supprimer et modifier des fichiers ou dossiers donc en theorie rien ne m'interdit de creer un fichier par l'intermediare d'un script php. Est ce que je me trompe??

n°1020236
esox_ch
Posté le 21-03-2005 à 21:30:17  profilanswer
 

Ok, donc par FTP tu changes les autorisations de Site/ en 0777, et apres tu arriveras a faire ce que tu veux


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020240
celestin14​09
Posté le 21-03-2005 à 21:36:21  profilanswer
 

Code :
  1. $groupinfo = posix_getgrgid(filegroup ( "../Site" ));
  2. print_r($groupinfo);


donne:
 

Array (
[name] => users
[passwd] => x
[members] => Array ( )
[gid] => 100
 )

n°1020243
celestin14​09
Posté le 21-03-2005 à 21:38:13  profilanswer
 

esox_ch a écrit :

Ok, donc par FTP tu changes les autorisations de Site/ en 0777, et apres tu arriveras a faire ce que tu veux


non mais justement meme avec un  


chmod("../Site",0777);


 
ca ne marche pas

n°1020245
celestin14​09
Posté le 21-03-2005 à 21:39:39  profilanswer
 

le chmod retourne false il merde koi donc en gros je n'est pas les droits de modifier Site/ ?

n°1020247
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 21:40:25  profilanswer
 

ca c pas par ftp c par php

n°1020248
celestin14​09
Posté le 21-03-2005 à 21:42:41  profilanswer
 

je dois faire quoi alors ?

n°1020252
esox_ch
Posté le 21-03-2005 à 21:44:38  profilanswer
 

Tu prend ton client FTP, tu l'ouvres, tu te connectes au site, et tu changes les autorisations du dossier!!!!


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020255
celestin14​09
Posté le 21-03-2005 à 21:45:52  profilanswer
 

ah ok je viens de comprendre ce que vous etes en train de me dire excuser moi pour le temps de reaction

n°1020264
celestin14​09
Posté le 21-03-2005 à 21:52:21  profilanswer
 

OK Merci a esox_ch et benamoubea ch pour votre aide j'avais pas pense a ca je me suis pris la tete avec le php alors que ca venai du serveur ftp  
 
Donc merci a tous les deux.

n°1020272
esox_ch
Posté le 21-03-2005 à 21:56:50  profilanswer
 

Il y a pas de quoi ;)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1020290
benamoubea​ch
tivuplai
Posté le 21-03-2005 à 22:03:10  profilanswer
 

g servi a rien mé pa de koi ^^

n°1020302
celestin14​09
Posté le 21-03-2005 à 22:07:03  profilanswer
 

benamoubeach a écrit :

g servi a rien mé pa de koi ^^


il faut pas dire ca c en eliminant toutes les solutions une a une que l'on    
arrive a quelque chose ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Creation de fichier en php

 

Sujets relatifs
spécification des droits lors de la création d'un fichierRécupération de la date de création d'un fichier
Creation fichier excel a partir d'un txtDate système + création de fichier batch MSDOS
enregistrement de variables dans la BDD ou creation d'un fichier XML ?Heure de creation d'un fichier
aide pour création forcée d'un fichier txt (et écriture)...[batch]Réccupérer la date de création/modification d'un fichier,
creation dynamic de PDF à partir d'un fichier Word sur un serveur iis?Création d'une liste déroulante pour un fichier Excel en VBA
Plus de sujets relatifs à : Creation de fichier en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR