Aller au contenu

Sujets conseillés

Posté

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

Posté

Hello,

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

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

}

Posté

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

Posté

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)

Posté

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

Posté

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).

Posté

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

Posté

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.

Posté

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

Posté

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

Posté

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...

Posté

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 !

Posté

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

Posté

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.

Posté

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

Posté

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

Posté
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
Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...