bonjour à tous,
j'ai un serveur de fichier samba, avec environ 600000 fichiers (*.doc, *.ppt, *.xls, *.pdf) dessus.
je me suis dit que mes users ayant étés gentils ces dernier temps, j'allais leurs offrir un moteur de recherche pour retrouver plus facilement une info dans leurs document ms-office
ce que j'ai fait, mnogosearch marche bien, il indexe bien le contenu des documents, etc...
le problème est dans le frontend php :
si je fait une recherche sur "toto", il me donne un lien vers le fichier qui contient le terme "toto". le lien est du type :
file://z:\mon_dossier\mon_fichier_toto.doc
l'utilisateur clique dessus et télécharge son fichier, tout vas bien, la vie est belle.
MAIS si le nom de fichier qui contient le terme "toto" à des caractères accentués, des espaces ou des parenthèses du genre :
"mon fichier toto à viré (au plus vite).doc", le lien devient :
file://z:\mon_dossier\mon fichier toto %3F%3 vir%3F%3F (au plus vite).doc
ce qui fait que quand l'utilisateur clique sur le lien, il à un message d'erreur du navigateur....
j'ai modifié le frontend php avec des urldecode, htmlentities, utf8_encode, rawurldecode, urlencode, etc..
enfin, tous les truc qu'il y à dans le guide officiel du php, et rien n'y fait !
le frontend renvoie une url avec des % qui fait que l'utilisateur ne peut télécharger les fichiers avec des caractères accentués.
bon, normalement, il ne doit pas y avoir de caractère accentués dans les url, mais y-a-t-il un moyen d'outrepasser la norme ?
mon architecture :
le serveur de fichiers est sous linux avec samba+mnogosearch+LAMP pour le frontend php
les utilisateurs sont sous winxp+IE/Firefox
il partagent leurs fichiers via le lecteur z:\
merci pour votre aide !
# Pas d'encodage pour les liens
Posté par mykey . Évalué à 1.
file://z:\mon_dossier\mon fichier toto %3F%3 vir%3F%3F (au plus vite).doc
Fait un petit test, tu as bien un echo $ta_variable que tu embriques de url_decode encode etc..., fait donc un echo tout simple, puis affiche le résultat dans un navigateur puis affiche le code source (CTRL+U dans Firefox). Regarde dans la sortie HTML si ton lien est comme tu le souhaite.
D'une autre manière, urlencode (il me semble fortement) qu'il ne sert uniquement à faire passer des variables à $_GET et non pas à encoder une URL, car en fait c'est le navigateur qui doit faire automatiquement la conversion des liens.
Je vais faire un p'tit test ...
< a href="projet 2I/éééindex_html_m3656259d.gif">lien vers un fichier avec un espace< /a>
j'ai volontairement ajouté un espace pour qu'il ne soit pas interprété par le parseur
ben oui, c passer sans soucis, donc écrit tes liens sans encodages.
J'espère que tu vas trouver
++
[^] # Re: Pas d'encodage pour les liens
Posté par Sol_Bianca . Évalué à 1.
je vais tester voir ce que ça donne....
[^] # Re: Pas d'encodage pour les liens
Posté par Sol_Bianca . Évalué à 1.
c relou ! quelqu'un connais un autre frontend web pour mnogosearch ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.