Jump to content
Sign in to follow this  
francoisch

Is_Dir local

Rate this topic

Recommended Posts

Bonjour

Jai besoin de vérifier quun dossier local sur mon PC existe bien.

Je fais :

if (is_dir(file:///W:/isipc/martinot/photoC/))
{
echo "OK";
}

mais ça ne fonctionne pas.

Merci par avance de votre aide.

Francois

Share this post


Link to post
Share on other sites

Hello,

Ne spécifie pas de protocole (file:///), cela devrait fonctionner :

if (is_dir ("W:\\isipc\\martinot\\photoC"))
{

}

Share this post


Link to post
Share on other sites

Merci de ta réponse.

J'ai essayé plusieurs solutions dont la tienne:

cheminCarrousel: W:\\isipc\\martinot\\photoC\\
KO KO KO
cheminCarrousel2: W:\isipc\martinot\photoC\
KO KO KO
cheminCarrousel3: W:/isipc/martinot/photoC/
KO KO KO
cheminCarrouselFile2: file:///W:\isipc\martinot\photoC\
KO KO KO
cheminCarrouselFile: file:///W:\\isipc\\martinot\\photoC\\
KO KO KO
cheminCarrouselFile3: file:///W:/isipc/martinot/photoC/
KO KO KO

mais ça ne fonctionne pas.

La fonction de test:

if (is_dir($cheminCarrousel))
{echo "OK <br>";}
else {echo "KO KO KO <br>"; }

Merci par avance de votre aide.

Francois

Share this post


Link to post
Share on other sites

Note que je ne suis pas spécialiste php, mais il semble d'après la doc que le résultat soit mis en cache :

effectue un clearstatcache() avant d'appeler la fonction peut être, j'ai essayé rapidement, is_dir fonctionne parfaitement sous windows (y compris avec file:/// d'ailleurs)

Share this post


Link to post
Share on other sites

Merci de vos réponses.

J'ai ajouté le clearstatcache():

clearstatcache();
if (is_dir($cheminCarrousel))
{echo "OK<br>";}
else {echo "KO KO KO <br>"; }

mais je sors toujours en KO.

Oui, le dossier W:\isipc\martinot\photoC existe, il y a 3 fichiers dedans (2 jpg, 1 gif).

Mon disque W est un disque virtuel créé au boot avec subst w: e:\ ; j'ai essayé avec E:\isipc\martinot\photoC avec le même résultat.

Francois

--------------------------

J'ai fait qqes tests supplémentaires:

cheminCarrousel : W:\isipc\martinot\photoC
KO KO KO
cheminCarrousel : W:/isipc/martinot/photoC
KO KO KO
cheminCarrousel : W:\\isipc\\martinot\\photoC
KO KO KO
cheminCarrousel : W:\isipc\martinot
KO KO KO
cheminCarrousel : W:\isipc
KO KO KO
cheminCarrousel : W:
KO KO KO
cheminCarrousel : W:\
KO KO KO
cheminCarrousel : E:
KO KO KO
cheminCarrousel : E:\
KO KO KO
cheminCarrousel : C:
KO KO KO
cheminCarrousel : C:\
KO KO KO

J'ai bien un disque C, un disque E, un disque W, et les dossiers qui vont avec.

J'ai arrêté mon firewall (ZoneAlarm) pour voir, ça ne change rien.

Merci de votre aide.

Francois

Share this post


Link to post
Share on other sites

Les syntaxes "W:\\isipc\\martinot\\photoC\\" et "W:/isipc/martinot/photoC/" devraient fonctionner, dès lors que le dossier existe. Si ça ne fonctionne pas, ce n'est pas au niveau de la syntaxe qu'il faut chercher.

Je ne sais pas s'il y a une gestion des droits sur ton Windows, mais PHP n'a peut être pas le droit d'accéder aux dossiers en questions. Si tu fais un opendir() pour ouvrir le dossier, tu obtiens quel message d'erreur ?

PS : j'ai lu un bug à ce sujet concernant une vieille version de PHP (5.1.x) sous Windows, quelle version utilises tu ?

cheminCarrousel: W:\\isipc\\martinot\\photoC\\

Ce message m'intrigue par contre : le double échappement est nécessaire pour le parseur PHP, c'est à dire que si tu fais un "echo" de la variable en question il ne devrait pas être visible. Fais voir quand même le bout de code concerné stp (un copier/coller exact).

Share this post


Link to post
Share on other sites

bonjour

Voici une partie de la réponse, sur l'opendir:

opendir("W:\\isipc\\martinot\\photoC");

qui donne:

Warning: opendir(W:\isipc\martinot\photoC) [function.opendir]: failed to open dir: No such file or directory in

J'ai un WinXP SP2; le Php de mon hébergeur est à 4.4.9.

Je n'ai introduit aucune gestion des droits dans mon Windows.

J'ai accédé ce matin d'un autre PC WinXP avec exactement les mêmes résultats, des KO partout.

Francois

Share this post


Link to post
Share on other sites

Tu parles de ton hébergeur ...

Tu testes ton script en local, ou depuis ton hébergeur ?

Pour information, le PHP ne pourra jamais accéder à une info quelconque du PC client (il est exécuté sur le serveur, et ne renvoie que du HTML (ou éventuellement des images et autres types de fichiers) sur le PC client.

Share this post


Link to post
Share on other sites

bonjour

Une réponse sur les quotes: j'ai essayé plusieurs formats, n'étant pas bien sûr de ceux qui étaient parfaitement corrects:

"W:/isipc/martinot/photoC"
"W:/isipc/martinot/photoC/"
"W:\\isipc\\martinot\\photoC"
"W:\\isipc\\martinot\\photoC\\"
"W:\\\\isipc\\\\martinot\\\\photoC"
"W:\\\\isipc\\\\martinot\\\\photoC\\\\"

Voila pour un des essais:

$cheminCarrousel = "W:/isipc/martinot/photoC";		
print "cheminCarrousel : ".$cheminCarrousel ."<br>";
if (is_dir($cheminCarrousel))
{echo "OK <br>";}
else {echo "KO KO KO <br>"; }

Merci de ton aide.

Francois

Captain

Je teste ma page installée chez mon hébergeur et j'essaie de lire un dossier sur mon PC.

Pas possible?

Francois

Share this post


Link to post
Share on other sites

Aïe, au moins, j'ai appris qqechose.

J'ai mis au point ces derniers jours un carrousel de photos (en JS); ces photos (jpg, gif, ..) sont installées dans ce dossier (ou dans d'autres dossiers) sur un PC (le mien en test, d'autres au delà).

Ce carrousel est activé par un clic sur un bouton dans une page Php de mon site; je voudrais ne faire apparaître ce bouton que si le dossier existe sur le PC.

En effet, une personne accédant à mon site (contrôlé) peut ne pas avoir créé le dossier mais cliquer quand même sur le bouton, ce qui provoquerait une erreur.

Peut-être faudrait-il que j'essaie de faire ce contrôle plutôt en JS?

Francois

Share this post


Link to post
Share on other sites

Un site web qui cherche à accéder aux données personnelles d'un internaute, ça ne te choque vraiment pas ?

Share this post


Link to post
Share on other sites

Peu importe, l'accès en question peut être provoqué par n'importe qui, n'importe quoi. Il suffirait que je mette par exemple une redirection/rewriting sur mon avatar pour faire exécuter n'importe quoi aux membres de ce forum...

Share this post


Link to post
Share on other sites

Bah ça n'a aucun rapport, tu inverses la "sécurité" là.

Un serveur web ne peut pas accéder au poste de l'internaute, encore heureux !

Share this post


Link to post
Share on other sites

Ta réticence est normale et naturelle.

Ma démarche consiste néanmoins à permettre à l'internaute d'accéder (accès contrôlé) aussi bien à des ressources Internet (messagerie, Web) qu'à des ressources sur son propre PC, des photos par exemple.

Francois

Share this post


Link to post
Share on other sites

Et bien ma réticence te souhaite bon courage dans ton entreprise. ;)

Sans installer un logiciel dédié à cela (ne serait ce qu'une applet Java) sur le poste de l'internaute, c'est impossible.

Share this post


Link to post
Share on other sites

Comme l'explique Kioob, les navigateurs font en sorte qu'on ne puisse pas accéder aux ressources du PC à partir du web.

Ce qui est possible :

- tu peux demander à l'utilisateur d'uploader ses fichiers vers ton site;

- sinon tu peux écrire un programme pour le PC qui va faire ce que tu veux et demander à tes utilisateurs de l'installer. Faut voir s'ils voudront "prendre ce risque"...

Jean-Luc

Share this post


Link to post
Share on other sites

bonjour

J'ai omis de vous dire que les utilisateurs de mon site ont 75 ans d'âge moyen (entre 65 et 90), ou sont lourdement handicapés (sclérose en plaques, ...) et sont, à ce titre, totalement incapables de procéder de la manière habituelle.

Le Web est fantastique surtout quand il s'adapte aux capacités de chacun; à ce titre, j'utilise IE d'une manière certes pas tout à fait orthodoxe mais en toute bonne conscience dans le but de leur permettre de s'en servir en dépit de leurs handicaps.

Francois

Share this post


Link to post
Share on other sites
Sans installer un logiciel dédié à cela (ne serait ce qu'une applet Java) sur le poste de l'internaute, c'est impossible.
qui plus est, cette applet doit être signée pour pouvoir accéder aux données locales

Share this post


Link to post
Share on other sites

Si tu utilises uniquement IE, un contrôle ActiveX devrait pouvoir faire l'affaire. Mais courage pour le développer !

Share this post


Link to post
Share on other sites

Merci de vos réponses.

Oui, mes internautes utilisent IE simplement parce que c'est le plus simple pour eux, ça fait tjs partie d'un PC Windows.

Grace à ça, j'utilise un ActiveX existant quand j'en ai besoin; naturellement, ça demande d'autoriser cet ActiveX sur le PC de la personne.

Une fenêtre de navigateur est ce que j'ai trouvé de plus simple comme interface unique pour aller à la fois sur Internet et accéder à des ressources locales (photos, ...).

Pour une personne âgée ou handicapée, arriver déjà à utiliser un navigateur est très long et difficile, même en simplifiant à l'extrême.

Et pourtant ce sont surtout ces personnes qui sont le plus souvent isolées et qui ont donc besoin de communiquer, plus peut-être que beaucoup d'autres.

Merci de votre aide.

Francois

Share this post


Link to post
Share on other sites

Je crois me rappeler de ton interface, tu avais dû poster quelque chose ici il y a un moment.

Elle est bien bleu pâle, avec de gros boutons au centre ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...