[PHP] Gestion de fichiers

Gestion de fichiers [PHP] - PHP - Programmation

Marsh Posté le 14-02-2006 à 18:52:28    

Salut à tous,
je voudrais savoir comment peut t'on faire pour copier ,renommer et déplacer des fichiers dans mon site avec du code php. je pense que je dois utiliser copy() rename() et unlink() mais il n'y a vraiment pas bocup d'infos sur le net pour ça! Sa veut dire ques les développeurs utilisent une autre techinique?

Reply

Marsh Posté le 14-02-2006 à 18:52:28   

Reply

Marsh Posté le 14-02-2006 à 21:30:56    

Pas mal du tout ce topic!!!
Bon juste parce que j'avais bien envi de le mettre :
[:rtfm]
 
Bref, pourquoi vousdrais-tu que les développeurs utilisent autre chose que copy() rename() et unlink()??? Ce sont bien les fonctions utilisées pour la suppression/copie et le renomage (ça se dit ça???) des fichiers! Qu'est ce que tu veux de plus?????????
 
Concernant la documentation... Je sais pas non plus ce que tu veux de plus??? Franchement je l'ai jamais lu tellement l'utilisation me parait évidente!!!!
 
Exemple unlink() Mais qu'est ce qu'on va bien pouvoir lui donner à cette animal?? Ba le répertoir (si besoin) et le nom du fichier à supprimer en s'assurant que les droits le permettent... Biensur si tu as utilisé unlink("*.*" ); ca risque surement pas de marcher.
 
Va lire la doc, plus en profondeur, >> fr.php.net et je sais pas... apprend! Comprend! Si tu ne comprend pas ces fonctions, abandonne tout de suite le php....
 
PS : Oui!... il y a un manque de sympatie dans mon post et je m'en excuse mais des fois...


Message édité par dwogsi le 14-02-2006 à 21:31:36
Reply

Marsh Posté le 14-02-2006 à 22:01:19    

Reply

Marsh Posté le 14-02-2006 à 22:16:43    

Je voulais les mettre et finalement j'ai eu la fléme d'écrire tous les liens...


Message édité par dwogsi le 14-02-2006 à 22:16:51
Reply

Marsh Posté le 14-02-2006 à 22:20:57    

bah C po trop dur
un C/C de http://fr.php.net
et puis tu fous le nom de la fonction derriere lol
 
mais c'est un peu se foutre de la gueule du monde que de dire que ya aucune doc la dessus lol

Reply

Marsh Posté le 14-02-2006 à 23:03:38    

Oui je sais bien qu'avec un copier/collé c'était vite fait mais même ça j'avais la fléme.
 
Et même sans lire la doc, je trouve l'utilisation de ces fonctions tellement évidente! C'est comme du rename en dos ou du copy etc... Sauf que les * et ? ne fonctionnent pas mais ce n'est pas un problème.


Message édité par dwogsi le 14-02-2006 à 23:05:18
Reply

Marsh Posté le 14-02-2006 à 23:22:50    

oui mais j'orai avoir des informations sur le CHmod nécessaire pour utiliser copy() rename() et unlink() car je n'arrive pas à faire marcher ces fonctions! happy face les mecs, d'accord ma question était conne et il y a 50 questions de ce type par jour mais vous enervez pas! merci quand meme :D :hello:

Reply

Marsh Posté le 14-02-2006 à 23:36:12    

tu peux nous donner un exemple du code que tu utilises avec ces fonctions s'il te plait ?

Reply

Marsh Posté le 14-02-2006 à 23:50:10    

hahahaaaa!!!! Je peux encore le remettre >>>> [:rtfm]
Et 50 c'est peu dire!
 
Va lire la doc!!!!!!!!!!!!!
Chmod >>> Serveur linux, droits d'accès aux fichiers sous la forme de 3 chiffres définissant les droits d'écriture, lecture et exécution.
 
Le premier correspond aux permissions du propriétaire.
Le second aux permissions du groupe.
Et le dernier aux permissions publiques.
 
Pour chacun d'entre eux plusieurs valeurs sont possibles en fonction des droits que tu souhaite donner. Chacun droit donne une valeur, tu en fait la somme et tu obtient le résultat pour le propriétaire ou le groupe ou publique selon la position du chiffre.
 
Lecture : 4
Ecriture : 2
Exécution : 1
 
Donc pour donner l'autorisation de lire le fichier à tous on obtient dans un premier temps :
444
 
On souhaite ensuite donner en plus les droits d'écriture au propriétaire :
Ecriture : 2
4+2 = 6
 
On a donc 644
 
Si on veut ensuite donner les droits d'exécution au groupe on fera :
4+1 = 5
 
On a alors : 654
 
Et ainsi de suite....
 
Après pour pouvoir modifier les chmod, impossible chez free! Pour les autres soit tu le fait vie ton client ftp, soit à cou de lignes de commandes si tu travail en local (serveur à la maison), soit avec la fonction chmod() de php, soit encore avec de la ligne de commande si tu as un accès ssh à ton serveur.
 
Et si tu ne veux pas te prendre la tête, tu passe tout en 777 mais je ne le recommande pas. Pour l'utilisation de fonctions copy() rename() et unlink() voici quelques exemple :
 
copy("rep/fichier1.ext","rep/fichier2.ext" );
>>> Attention aux droit du répertoire de destinnation, php doit pouvoir écrire dedans
 
rename("old_name.ext","new_name.ext" )
>>> Droit du fichier
 
unlink("rep/fichier.ext" )
>>> Droit du fichier
Bon voilà et si tu ne comprend toujours pas : [:rtfm]


Message édité par dwogsi le 14-02-2006 à 23:53:49
Reply

Marsh Posté le 15-02-2006 à 00:02:39    

mon code :

Code :
  1. <?php
  2. $pseudo = 'mathilde';
  3. mkdir ($pseudo);
  4. copy ("user/index.php" ,$pseudo."/index.php" );
  5. copy ("user/style.css" ,$pseudo."/style.css" );
  6. copy ("user/admin.php" ,$pseudo."/admin.php" );
  7. copy ("user/stat.php" ,$pseudo."/stat.php" );
  8. copy ("user/na.php" ,$pseudo."/na.php" );
  9. copy ("user/na2.php" ,$pseudo."/na2.php" );
  10. ?>


et l'erreur que sa me donne :

Citation :

Warning: mkdir(mathilde): File exists in /www/sites/1/ifrance.com/l/o/lostblog/site/gestionfichiers.php on line 3


je n'ai pas mis de chmod lors de ma création de répertoir (mkdir($pseudo)) car quand je met 755 777 ou 666 je me retrouve au final avec des valeurs basses genre 420 qui empeche la lecture des fichiers avec ie ou mozilla. quand je ne met pas de valeur mon repertoire se met tout seul sur 755.

Reply

Marsh Posté le 15-02-2006 à 00:02:39   

Reply

Marsh Posté le 15-02-2006 à 00:14:46    

Ton répertoire existe déjà.... Ou alors problème de droits!
Condition à ajouter : if ( !is_dir($pseudo) ) mkdir($pseudo);
et tenter un mkdir($pseudo,0700) (marche pas chez free je crois).


Message édité par dwogsi le 15-02-2006 à 00:16:02
Reply

Marsh Posté le 15-02-2006 à 00:26:13    

j'ai beau mettre n'importe quel nom il me met toujours la meme chose, preuve que le répertoire n'existe pas déja. mon hébergeur est ifrance. je vais essayer ce que tu me dis! question: je dois mettre des " ou pas dans mkdir($pseudo, "0700" )?


Message édité par hugoOo le 15-02-2006 à 00:27:41
Reply

Marsh Posté le 15-02-2006 à 00:30:14    

je sais plus... test les deux et sinon http://fr.php.net/mkdir
Et essais aussi mkdir("/".$pseudo) (avais pas pensé avant)


Message édité par dwogsi le 15-02-2006 à 00:31:06
Reply

Marsh Posté le 15-02-2006 à 00:36:01    

jai mis :

Code :
  1. <?php
  2. $pseudo = 'plop';
  3. if ( !is_dir($pseudo)) {
  4. mkdir ($pseudo);
  5. } else{
  6. echo 'répertoir déja pris!';
  7. }


et pour n'importe quel valeure de pseudo j'obtient toujours le meme message! (repertoire déja pris)
et la deuxieme technique avec le chmod 0700 ne marche pas non plus (acces denied pa la suite)!

Reply

Marsh Posté le 15-02-2006 à 00:39:10    

quand j'utilise mkdir ("/".$seudo); jobtient :

Citation :

Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid is 3062723 is not allowed to access / owned by uid 0 in /www/sites/1/ifrance.com/l/o/lostblog/site/gestionfichiers.php on line 3

Reply

Marsh Posté le 15-02-2006 à 00:48:44    

Prend un vrai hébergeur, tu vas multiplier les problèmes autrement, t'en trouve à 2€ par mois de nos jours, c'est pas ça qui t'obligera à bouffer des pattes. ;)

Reply

Marsh Posté le 15-02-2006 à 00:56:02    

Ouai mais à deux euros par jour tas rien comme espace. Moi à 10/mois j'ai 5Go Web/Ftp et 5Go supplémentaire uniquement FTP pour sauvegarder et stocker ce que je veux, 15 BDD, etc...
 
Mais sinon il peut se trouver un compte free, ça va très bien pour les "petits" sites. J'en donne un s'il veut.

Reply

Marsh Posté le 15-02-2006 à 01:04:09    

Free c'est pareil, t'as tout un tas de restriction, pas de chmod, pas de glob, pas de fonctions FTP, etc.
A 2€ par mois, tu peux avoir 500Mo chez un vrai hébergeur beaucoup moins limité en fonction, 5Go, ça sert pas à grand chose pour débuter.
Perso, le site de ma femme avec un rubrique album photo totalisant près de 11000 photos ne prends même pas 2Go.

Reply

Marsh Posté le 15-02-2006 à 01:23:09    

Trop fort le site de ta femme, je suis fan!!!! Par contre je pensais pas qu'on pouvais en dire autant sur ce sujet! Seul reproche que je peux y faire : problème de compatibilité avec FireFox dans le redimentionnement des fenêtres destinnées à afficher les photos... C'est pourquoi je préconnise toujours de les laisser redimensionnables.
 
Sinon, il est vrai que tout dépend de l'utilisation que l'on souhaite faire de son hébergement mais je pense que les topic à se propos dont déjà assez nombreux sur le forum (je crois qu'il y a même "quel hébergeur choisir" ) donc on e vas pas relancer ce débat ici.
 
Mais juste pour dire deux mots la dessus, 2€/mois est suffisant pour un "petit site"/site perso. Après le miens à pour but essentiel de proposer en téléchargement les projets open source de qui veut bien les héberger chez nous donc espace requis et bande passante/mois important.
 
Pour parler de l'hébergement free, je pense qu'il va très bien pour débuter dans la mesure ou le site ne génére pas trop de traffic et je pense que le seul vrai problème est l'absence de la gestion des droits des fichiers. Donc je conseil plutôt pour lui un hébergement free qu'un hébergement payant.

Reply

Marsh Posté le 15-02-2006 à 01:32:35    

[Désolé pour le HS]

dwogsi a écrit :

Trop fort le site de ta femme, je suis fan!!!! Par contre je pensais pas qu'on pouvais en dire autant sur ce sujet! Seul reproche que je peux y faire : problème de compatibilité avec FireFox dans le redimentionnement des fenêtres destinnées à afficher les photos... C'est pourquoi je préconnise toujours de les laisser redimensionnables.


Tu parles de quoi (quelle rubrique ?) ? Parce qu'en général, je développe d'abord sous Firefox et j'adapte si IE a des soucis.  :heink:  

Reply

Marsh Posté le 15-02-2006 à 09:02:22    

Non en fait c'est juste une erreur de ma part.... C'est parceque j'ai désactivé le redimentionnement des fenêtres par les script mais je maintiens quand même ceci :

dwogsi a écrit :

...C'est pourquoi je préconnise toujours de les laisser redimensionnables.


Pour ne pas pénaliser les utilisateurs dans mon cas par exemple.

Message cité 1 fois
Message édité par dwogsi le 15-02-2006 à 09:02:32
Reply

Marsh Posté le 15-02-2006 à 11:25:48    

je suis vraiment obligé de changer? car c'est juste un petit détail! il génère  une erreur (File existe) lors de la fonction mkdir mais c'est tout en plus j'avais réussi à virer la pub de ifrance et puis 100MO c'est suffisant pour moi!

Reply

Marsh Posté le 15-02-2006 à 11:36:56    

hugoOo a écrit :

en plus j'avais réussi à virer la pub de ifrance

Ce qui est illégal soit dit en passant.
 
Extrait des conditions de ventes de ifrance :

Citation :

9.11 En cas d’hébergement gratuit, le Client accepte la diffusion de toutes publicités sur son Site Internet.

T'as signé le contrat général de vente mais tu ne le respectes pas c'est pour ça que t'es en illégalité.
 
De plus comme indiqué juste aprés

Citation :

ARTICLE 10 : SERVICE D’HEBERGEMENT MUTUALISE
10.1 Le Serveur demeure la propriété d’iEUROP qui en assure la gestion et la maintenance matérielle, le Site Internet demeure sous le contrôle du Client (hors publicités).

En bref, tu mets à jour ton site comme t'as envie mais tu n'as aucun droit de controle sur les publicités affiché par l'hébergeur quand les gens consultent ton site et donc aucun droit d'empécher ces publicités d'être affiché.
 
 
PS : Si tu fais des trucs illégaux, évite au moins de le crier sur les toits.


Message édité par omega2 le 15-02-2006 à 11:38:23
Reply

Marsh Posté le 15-02-2006 à 11:41:18    

dwogsi a écrit :

Non en fait c'est juste une erreur de ma part.... C'est parceque j'ai désactivé le redimentionnement des fenêtres par les script mais je maintiens quand même ceci :
 
Pour ne pas pénaliser les utilisateurs dans mon cas par exemple.


Chez moi elles le sont, surement des mauvais restes de l'ancienne version, je vais jeter un coup d'oeil.  :jap:  
 

hugoOo a écrit :

je suis vraiment obligé de changer? car c'est juste un petit détail! il génère  une erreur (File existe) lors de la fonction mkdir mais c'est tout en plus j'avais réussi à virer la pub de ifrance et puis 100MO c'est suffisant pour moi!


C'est peut-être ton hébergeur qui ne supporte pas la fonction mkdir ou alors, tu essayes peut-être de créer ce dossier dans un endroit où tu n'as pas les permissions.
Essaye quelquechose du genre :

Code :
  1. <?php
  2. $repertoire_courant=getcwd();
  3. echo $repertoire_courant.'<br />';
  4. ?>


Histoire de voir si tu es bien sur dans le dossier de ton site et voir si tu as le droit de créer un dossier.

Reply

Marsh Posté le 15-02-2006 à 11:55:46    

omega2 ---> Ok, j'avais pas bien lu la doc de ifrance, je remet les pubs de suite!
the-shadow---> je teste ça tout de suite!

Reply

Marsh Posté le 15-02-2006 à 11:58:03    

the shadow voila ce que j'obtient :

Citation :

/www/sites/1/ifrance.com/l/o/lostblog/site

Reply

Marsh Posté le 15-02-2006 à 11:59:29    

Tente un  

Code :
  1. mkdir($repertoire_courant.'/totodir');


Reply

Marsh Posté le 15-02-2006 à 12:02:14    

le message que j'obtient :  

Citation :

Warning: mkdir(/www/sites/1/ifrance.com/l/o/lostblog/site/totodir): File exists in /www/sites/1/ifrance.com/l/o/lostblog/site/voir.php on line 4

Reply

Marsh Posté le 15-02-2006 à 12:02:59    

Super Shadow vient à la rescousse de la veuve et de l'orphelin du PHP

Reply

Marsh Posté le 15-02-2006 à 12:05:36    

Citation :

Super Shadow vient à la rescousse de la veuve et de l'orphelin du PHP


^^

Reply

Marsh Posté le 15-02-2006 à 12:08:26    

gatsu35 a écrit :

Super Shadow vient à la rescousse de la veuve et de l'orphelin du PHP


http://galerie.lohlwee.org/images/supertuxtop.gif
 

hugoOo a écrit :

le message que j'obtient :  

Citation :

Warning: mkdir(/www/sites/1/ifrance.com/l/o/lostblog/site/totodir): File exists in /www/sites/1/ifrance.com/l/o/lostblog/site/voir.php on line 4



C'est ton hébergeur, l'impossibilité ce créer un dossier même avec un chemin absolu qui doit normalement correspondre à ton site, ça ne peut être que ça... :/

Reply

Marsh Posté le 15-02-2006 à 12:15:25    

donc il n'y a aucun moyen pour moi de créer un nouveau dossier dans mon site?

Reply

Marsh Posté le 15-02-2006 à 12:16:43    

Pas sur Ifrance, j'ai bien peur, je suis parti à la recherche d'info sur leur site, mais je n'ai pas encore trouvé les "restrictions", alors qu'il y en a toujours chez les hébergeurs gratuits. Même chez les payants d'ailleurs, sauf que chez les payants, en général, il y en a moins. :D

Reply

Marsh Posté le 15-02-2006 à 12:22:08    

quand je passe par mon client FTP (FTP expert), j'arrive pourtant bien à créer des dossiers, il n'ya pas moyen de simuler la conection je mexplike :
de faire comme si c'est moi (administrateur du site ) qui utilise mon client FTP ?

Reply

Marsh Posté le 15-02-2006 à 12:23:31    

le php dispose de fonctions ftp. (voir doc) Il faut tester, mais s'ils ont bloqué la création de dossier en php dans le dossier courant, alors ca serait étonant qu'ils aient laissé l'accés à des éléments situé sur d'autres serveurs. (ftp et http compris)


Message édité par omega2 le 15-02-2006 à 12:23:48
Reply

Marsh Posté le 15-02-2006 à 12:31:11    

oki je vai saller voir la doc. merci de ton aide!


Message édité par hugoOo le 15-02-2006 à 12:33:33
Reply

Marsh Posté le 15-02-2006 à 12:32:09    

Essaye avec ça :

Code :
  1. <?php
  2. $ftp_serveur='ftp://monserveurftp';
  3. $connexionftp = ftp_connect($ftp_serveur_ftp,21);
  4. $ftp_login='monlogin';
  5. $ftp_motdepasse='monmotdepasse';
  6. $ftp_connexion = ftp_login($connexionftp, $ftp_login, $ftp_motdepasse);
  7. if ((!$connexionftp) || (!$ftp_connexion)) {
  8. die('Marche pas la connexion au FTP coco');
  9. } else {
  10. echo 'Connexion au ftp okey';
  11. }
  12. $toto=ftp_mkdir($connexionftp,'tototest');
  13. if (!$toto) {
  14. echo 'Impossible de créer le répertoire coco';
  15. } else {
  16. echo 'Création du répertoire okey';
  17. }
  18. ftp_close($connexionftp);
  19. ?>


Reply

Marsh Posté le 15-02-2006 à 12:34:42    

okay jvé tester ça, mais il y a quelque chose que je trouve étonnant c'est qu'il me cré bien mon répertoire!

Reply

Marsh Posté le 15-02-2006 à 12:37:32    

càd ? :heink:

Reply

Marsh Posté le 15-02-2006 à 12:38:27    

avec mkdir ?
 
ça se trouve, on se fait chier depuis hier alors que t'as juste fait une boulette et que t'as mis 2 fois mkdir, du coup, il peut pas le créer 2 fois.
 
Si c'est ça, je propose le sodogravier. :o

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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