[PHP] Problème d'ouverture de dossier
Résolu/Fermé7 réponses
xxkirastarothxx
Messages postés
380
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
22 mars 2013
40
19 mai 2009 à 16:19
19 mai 2009 à 16:19
C:\Fichier\Test1 C:\Fichier\Test2 C:\Fichier\Test3
Si tu as pour optique d'ouvrir (lire) des fichiers sur le poste de tes clients: ce n'est pas possible via php.
Par contre si tu souhaite ouvrir des fichiers de ton serveur, essaye avec un chemin relatif:
Par exemple, sur un serveur wamp (dossier "www" dans c:\wamp):
../../Fichier/Test2
Si ton but était d'ouvrir des fichiers text chez tes clients, cela est simplement impossible en php, pour des raisons évidentes de sécurité (je n'aimerai pas qu'un site web puisse lire mon fichier "rapel-de-mes-password.txt", par exemple, ni mon fichier de cookie)
Si c'était bien ton but, je te conseil d'allé voir l'utilisation de l'objet ActiveX (fonctionnel uniquement sous IE (et c'est d'ailleur l'une de ces plus grosse faille)). Il me semble qu'il est également possible de le faire par un applet java, mais je ne sais pas comment.
Bonne chance.
En faite ce n'est pas pour un site internet c'est un petit logiciel php a utiliser pour une entreprise dans lequels je fait mon stage
En faite eux vont juste saisir les sources et les destination sur des fichier texte et lancer le logiciel,avec le logiciel moi je récupère ces donnée pour copier les fichier de l'emplacement récupéré sur le fichier texte source pour les copier a l'emplacement récupéré dans le fichier texte destination
Mon but pour l'instant et juste d'accéder a ces dossier a partir du fichier texte je veut juste stocker ces variable dans un tableaux pour plus tard les utiliser avec une boucle for mais pour mes test comme je l'ait dit seul Source[2] noter dans le code me valide l'ouverture mais si je saisie Source[0] ou Source[1] ben le dossier ne veut pas s'ouvrir donc je comprend pas pourquoi les valeur stocker dans mon tableaux ne fonctionne pas toute comme Source[2] je ne sais pas si sais tout simplement pas possible ou si c'est un problème d'utilisation de mon tableaux ou même ailleur j'ait tout essayer mais....
En faite eux vont juste saisir les sources et les destination sur des fichier texte et lancer le logiciel,avec le logiciel moi je récupère ces donnée pour copier les fichier de l'emplacement récupéré sur le fichier texte source pour les copier a l'emplacement récupéré dans le fichier texte destination
Mon but pour l'instant et juste d'accéder a ces dossier a partir du fichier texte je veut juste stocker ces variable dans un tableaux pour plus tard les utiliser avec une boucle for mais pour mes test comme je l'ait dit seul Source[2] noter dans le code me valide l'ouverture mais si je saisie Source[0] ou Source[1] ben le dossier ne veut pas s'ouvrir donc je comprend pas pourquoi les valeur stocker dans mon tableaux ne fonctionne pas toute comme Source[2] je ne sais pas si sais tout simplement pas possible ou si c'est un problème d'utilisation de mon tableaux ou même ailleur j'ait tout essayer mais....
A mon avis le problème se situe au niveaux de l'initialisation de mon tableaux lorsque je stocke les valeurs dans le tableaux car si je marque dans le code:
$Source[0] = 'C:\Program Files\EasyPHP 2.0b1\www\Tristan\Test1';
$Source[1] = 'C:\Program Files\EasyPHP 2.0b1\www\Tristan\Test2';
la lorsque je remplace par source[1] ou source[0] dans le opendir la le dossier veut bien s'ouvrir
aller comprendre :/
$Source[0] = 'C:\Program Files\EasyPHP 2.0b1\www\Tristan\Test1';
$Source[1] = 'C:\Program Files\EasyPHP 2.0b1\www\Tristan\Test2';
la lorsque je remplace par source[1] ou source[0] dans le opendir la le dossier veut bien s'ouvrir
aller comprendre :/
xxkirastarothxx
Messages postés
380
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
22 mars 2013
40
19 mai 2009 à 17:17
19 mai 2009 à 17:17
Alors attends, je suis un peu paumé la.
1] Ton "logiciel" tourne sur un serveur web et est accessible par un navigateur web (donc une application pas un logiciel, et c'est l'équivalent d'un site web) ou c'est un logiciel (compilé avec php-gtk) qui s'exécute directement chez le client (un fichier.exe) ?
2] le fichier que tu lis ("fichier_source.txt"), est quand à lui sur le serveur ?
3] les dossiers qui tu essaye d'atteindre de ton serveur sont sur le serveur ou chez le client ?
4] Dis moi si je me trompe, mais pour le moment je comprends la chose comme ça:
- le client écris un fichier texte.
- le client se rends sur l'adresse internet, et dois uploader (?) sont fichier texte.
- l'application récupère les chemins d'accès aux fichier contenu dans le fichier texte
- l'application devrais déplacer ces fichiers ?
Ce qui me turlupine surtout, ce sont les fichier qui doivent êtres déplacer, ils se trouvent où ceux-ci ?
1] Ton "logiciel" tourne sur un serveur web et est accessible par un navigateur web (donc une application pas un logiciel, et c'est l'équivalent d'un site web) ou c'est un logiciel (compilé avec php-gtk) qui s'exécute directement chez le client (un fichier.exe) ?
2] le fichier que tu lis ("fichier_source.txt"), est quand à lui sur le serveur ?
3] les dossiers qui tu essaye d'atteindre de ton serveur sont sur le serveur ou chez le client ?
4] Dis moi si je me trompe, mais pour le moment je comprends la chose comme ça:
- le client écris un fichier texte.
- le client se rends sur l'adresse internet, et dois uploader (?) sont fichier texte.
- l'application récupère les chemins d'accès aux fichier contenu dans le fichier texte
- l'application devrais déplacer ces fichiers ?
Ce qui me turlupine surtout, ce sont les fichier qui doivent êtres déplacer, ils se trouvent où ceux-ci ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non en faite y'a aucun rapport avec internet.
Je suppose que se sera un fichier.exe mais je savais même pas qu'on pouvait utiliser le php hors html mais en gros je t'explique ce que j'ait comprit:
en faite y'a une chaine de construction et chaque ordinateur fait par jour des fichier ou il répertorie les erreurs.
En faite il veulent grâce au fichier texte que l'entreprise aura saisie lancer ce programme pour qu'il aille récupéré les fichier d'erreur de chaque ordinateur de la chaine pour tous les mettre dans un autre dossier
en gros tous reste sur leurs serveurs a eux.
j'espère que je t'ait éclaircie ^^
pour l'instant je veut juste savoir pourquoi la valeur du type (c:/**/**/test) stocker dans mon tableaux ne veut pas marcher dans le opendir
$dossier = opendir($Source[2]) ==> le dossier s'ouvre tout va bien
mais le problème et pour toute les valeur censer être stocker avant:
$dossier = opendir($Source[0]) ==> impossible d'ouvrir le dossier
$dossier = opendir($Source[1]) ==> impossible d'ouvrir le dossier
alors que quand je test voir la valeur de mes variable avec echo:
echo $Source[0];
echo $Source[1];
echo $Source[2];
cela m'affiche bien:
c:/**/**/test1
c:/**/**/test2
c:/**/**/test3
Donc comprend pas pourquoi la valeur veut pas être utiliser dans le opendir
Je suppose que se sera un fichier.exe mais je savais même pas qu'on pouvait utiliser le php hors html mais en gros je t'explique ce que j'ait comprit:
en faite y'a une chaine de construction et chaque ordinateur fait par jour des fichier ou il répertorie les erreurs.
En faite il veulent grâce au fichier texte que l'entreprise aura saisie lancer ce programme pour qu'il aille récupéré les fichier d'erreur de chaque ordinateur de la chaine pour tous les mettre dans un autre dossier
en gros tous reste sur leurs serveurs a eux.
j'espère que je t'ait éclaircie ^^
pour l'instant je veut juste savoir pourquoi la valeur du type (c:/**/**/test) stocker dans mon tableaux ne veut pas marcher dans le opendir
$dossier = opendir($Source[2]) ==> le dossier s'ouvre tout va bien
mais le problème et pour toute les valeur censer être stocker avant:
$dossier = opendir($Source[0]) ==> impossible d'ouvrir le dossier
$dossier = opendir($Source[1]) ==> impossible d'ouvrir le dossier
alors que quand je test voir la valeur de mes variable avec echo:
echo $Source[0];
echo $Source[1];
echo $Source[2];
cela m'affiche bien:
c:/**/**/test1
c:/**/**/test2
c:/**/**/test3
Donc comprend pas pourquoi la valeur veut pas être utiliser dans le opendir
xxkirastarothxx
Messages postés
380
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
22 mars 2013
40
20 mai 2009 à 10:25
20 mai 2009 à 10:25
D'accord, enfait il s'agit d'un programme de "scan de log" enfait.
Un serveur récupère les lignes des fichiers sur d'autres machines, et essaye d'ouvrir les dossiers inscrits dedans, c'est bien ça hein ? ^^
Dans ce cas tout s'éclaire :)
Enfait, les fichiers que tu scan sont écris automatiquement par les machines, pour cette même machines: les chemins qui sont écrits dedans sont prévu pour cette machine, pas pour le serveur.
comme c'est ton serveur qui essaye d'ouvrir les dossiers, il cherche sur son propre disque dur, et non sur celui des machines.
$Source2 s'ouvre par-ce que le dossier dois également exister sur le serveur, simplement.
Tu peux essayé de faire un partage réseaux du disque dur, autorisé en accès uniquement pour le serveur, voir (la sécurité de Windows étant merdique) essaye d'acceder aux machine par \\xxx.xxx.xxx.xxx\c$ ça peut macher.
Un serveur récupère les lignes des fichiers sur d'autres machines, et essaye d'ouvrir les dossiers inscrits dedans, c'est bien ça hein ? ^^
Dans ce cas tout s'éclaire :)
Enfait, les fichiers que tu scan sont écris automatiquement par les machines, pour cette même machines: les chemins qui sont écrits dedans sont prévu pour cette machine, pas pour le serveur.
comme c'est ton serveur qui essaye d'ouvrir les dossiers, il cherche sur son propre disque dur, et non sur celui des machines.
$Source2 s'ouvre par-ce que le dossier dois également exister sur le serveur, simplement.
Tu peux essayé de faire un partage réseaux du disque dur, autorisé en accès uniquement pour le serveur, voir (la sécurité de Windows étant merdique) essaye d'acceder aux machine par \\xxx.xxx.xxx.xxx\c$ ça peut macher.