cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010
-
28 nov. 2007 à 18:31
cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010
-
23 mars 2008 à 18:09
bonjour,
J'ai un petit pb avec une fonction mkdir(), chez elle fonctionné tres bien et lorsque je l'ai mis sur le web il y avais une erreur comme quoi le fichier existait déja : j'ai un peu insister, j'ai modifier quelque truc mais toujour le mm résultat.
Quand je suis retourné dans filezilla les dossier s'était bien créé mais il porte le nom de l'adresse, soit un dossier qui s'appele :
..\photo\ oO!!!!!!!!!
ou encore ..\photo\25 et je peux pas les supprimer. oO oO Oo oO Oo Oo!!!!!!!!!!!
J'ai essayer avec rmdir() mais sa ne marche pas, il me dit que le dossier est inexistan (logique!!)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 28 nov. 2007 à 20:53
Salut,
Sur Linux, le séparateur de répertoires est le slash / et non l'antislash comme sur windows.
Sur Windows, utiliser le slash comme séparateur de répertoires fonctionne tout à fait, sauf pour quelques très rares fonctions (détail dans la doc de php).
Pour une plus grande compatibilité, tu peux utilise la constante DIRECTORY_SEPARATOR qui vaut ce qu'il faut suivant le système sur lequel php est exécuté (slash sur linux et MacOS, antislash sur windows).
Pour ton problème, cela vient du fait que ton hébergeur est un débutant en configuration et qu'il n'a pas activé SuExec, qui permet d'exécuter php avec le même ID utilisateur que le propriétaire des fichiers. C'est pourtant la base de la sécurité... Il a du, en contrepartie, activer safe_mode qui fait ch... tout le monde.
Bref. La seule solution pour supprimer ton fichier est d'utiliser unlink() avec en argument le nom du fichier à supprimer (avec les antislashs) depuis un script php (quitte à l'écrire spécialement, ça ne fait que quelques lignes), parce que toi, avec ton login FTP, tu n'as pas les droits sur un fichier créé par ton script.
C'est débile, oui, mais c'est la faute de ton hébergeur...
Donc :
unlink('..\\photo\\');
Les deux antislashes c'est pour échapper l'antislash, qui est normalement considéré comme un caractère spécial.
cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010 1 déc. 2007 à 00:17
ok merci pour ta réponse neigedhiver, je te répond que maintenant parce que g t un peu oqp. Je vais essayer de faire se que tu me dis, mise a pars que c des dossier alors jvais utiliser la finction rmdir() : mais sa doit etre le mm principe.
En tout cas, merci pour ta réponse, elle est tres compete !!
cs_Al3x_Oo
Messages postés41Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention27 juillet 2010 1 déc. 2007 à 00:17
ok merci pour ta réponse neigedhiver, je te répond que maintenant parce que g t un peu oqp. Je vais essayer de faire se que tu me dis, mise a pars que c des dossier alors jvais utiliser la finction rmdir() : mais sa doit etre le mm principe.
En tout cas, merci pour ta réponse, elle est tres compete !!
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 1 déc. 2007 à 00:25
Justement... Il semble fort d'après ce que tu dis que ce ne sont justement pas des dossiers, mais des fichiers qui ont été créés. D'où l'utilisation de unlink et non de rmdir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
golgauth
Messages postés6Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention21 mars 2008 21 mars 2008 à 22:25
Bonjour,
Une réponse un peu plus précise et concrète,
juste pour aider (un truc que j'ai un peu galéré a faire) :
Si par erreur vous avez uploadé un fichier dont le nom contient des anti-slash (antislash, backslash) sur votre serveur la solution se trouve au niveau de php (par ftp, en ligne de commande, je n'y suis pas parvenu). Voici le code, tout simple :
creer un script php et l'uploader sur votre site contenant les lignes suivantes :
golgauth
Messages postés6Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention21 mars 2008 21 mars 2008 à 22:28
Je précise que le unlink avec \\ pour échapper ne marchait absolument pas dans mon cas "mon\fichier" : je suppose php prenait mon \ pour un / et cherchait un dossier "mon" dans lequel il supposait trouver un fichier "fichier".