francoisch Posté 29 Août 2009 Posté 29 Août 2009 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
SStephane Posté 29 Août 2009 Posté 29 Août 2009 Hello, Ne spécifie pas de protocole (file:///), cela devrait fonctionner : if (is_dir ("W:\\isipc\\martinot\\photoC")){}
francoisch Posté 29 Août 2009 Auteur Posté 29 Août 2009 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
SStephane Posté 29 Août 2009 Posté 29 Août 2009 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)
francoisch Posté 29 Août 2009 Auteur Posté 29 Août 2009 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\photoCKO KO KO cheminCarrousel : W:/isipc/martinot/photoCKO KO KO cheminCarrousel : W:\\isipc\\martinot\\photoCKO KO KO cheminCarrousel : W:\isipc\martinotKO KO KO cheminCarrousel : W:\isipcKO 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
Kioob Posté 30 Août 2009 Posté 30 Août 2009 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).
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 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
captain_torche Posté 30 Août 2009 Posté 30 Août 2009 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.
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 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
captain_torche Posté 30 Août 2009 Posté 30 Août 2009 Ha non, ça n'est pas du tout possible. Tu comptes faire quoi, précisément ?
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 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
Kioob Posté 30 Août 2009 Posté 30 Août 2009 Un site web qui cherche à accéder aux données personnelles d'un internaute, ça ne te choque vraiment pas ?
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 Quand c'est l'internaute qui provoque l'accès? F
Kioob Posté 30 Août 2009 Posté 30 Août 2009 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...
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 Avec un accès personnel contrôlé par Apache (htaccess/htpasswd)? Francois
Kioob Posté 30 Août 2009 Posté 30 Août 2009 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 !
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 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
Kioob Posté 30 Août 2009 Posté 30 Août 2009 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.
Jeanluc Posté 30 Août 2009 Posté 30 Août 2009 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
francoisch Posté 30 Août 2009 Auteur Posté 30 Août 2009 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
Leonick Posté 31 Août 2009 Posté 31 Août 2009 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
captain_torche Posté 31 Août 2009 Posté 31 Août 2009 Si tu utilises uniquement IE, un contrôle ActiveX devrait pouvoir faire l'affaire. Mais courage pour le développer !
francoisch Posté 31 Août 2009 Auteur Posté 31 Août 2009 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
captain_torche Posté 31 Août 2009 Posté 31 Août 2009 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 ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant