Upload d'images

Résolu/Fermé
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 5 août 2008 à 22:12
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 - 6 août 2008 à 20:50
Bonjour,
Parce qu'il faut toujours que ça fasse ça, et bien ça le fait.
J'ai un formulaire qui sert à uploader des images (une ou plusieurs). Alors, tout allait bien mais vendredi, notre hébergeur a déplacé notre site sur un autre serveur. On a réussi à le remettre fonctionnel au complet (en modifiant les settings de php.ini). Tout marche bien sauf mon formulaire d'upload.

Mon problème vient que je test si c'est une image en utilisant la fonction getimagesize(). S'il retourne false, c'est que ce n'est pas une image. Mais voilà, le problème, c'est que plus rien ne marche. Au moment de valider si c'est une image, il retourne toujours false (que ce soit vraiment une image ou pas). Et je comprend plus là. Mon code n'a pas bougé, tout marche sauf ça.

Quelqu'un à une suggestion à faire parce que je vois pas là. J'ai essayé un tas d'autres fonctions pour vérifier le type et tout, mais rien à faire. Je ne sais pas si c'est un oubli dans la config ou à cause de la version de php (5.2.6). J'ai bien mis un MAX_FILE_SIZE dans mon formulaire, j'ai mis les deux variables de php.ini avec une valeur et j'ai bien fait attention de spécifier un répertoire temporaire et d'autoriser l'upload de fichier (mis à ON).

Qu'est-ce que j'ai pu oublié :(

7 réponses

Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
5 août 2008 à 22:26
Avec le code sous les yeux on pourrait peut être t'aider
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
5 août 2008 à 22:30
Le code fait 15km de long et il fonctionnait bien avant (sans y toucher et même sur un autre hébergeur). Le problème ne vient surement pas de là. Je pensais plutôt à la config mais j'ai retouché tout ce que j'avais du modifié la première fois. Donc s'il y a autre chose, ce n'était pas moi qui l'avait modifié et donc c'est peut-être là que je coince.

Si tu veux un petit bout du code, là mais je doute que tu y vois grand chose:
if ($valide==1){

//on vérifie que ce sont tous des images

foreach($active_keys as $key){
if(!getimagesize($_FILES[$fieldname]['tmp_name'][$key])){
$valide=5;
}
}

...

et ça finit beaucoup plus loin donc bref. Cette ligne retourne toujours faux (dans le if). Je ne comprend pas pourquoi.
Sais-tu comment dois être écrite la ligne dans php.ini qui indique le répertoire temporaire. Car je me demande si ça ne vient pas de là. :o
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
5 août 2008 à 22:39
Peut-être que j'ai une piste. Voilà mon phpinfo:
upload_tmp_dir no value no value

Pourtant dans php.ini, cette variable a une valeur donnée. Comprend plus rien. :P

upload_tmp_dir = /uploadtmp

Dois-je mettre un chemin complet ou pas? Et indiquer un "." avant le /? Et ajouter un / à la fin? Je ne rappelle vraiment pas ce que j'avais mis sur l'ancien serveur. Quelqu'un sait comment doit être formaté cette variable?
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
5 août 2008 à 22:49
Ton script n'est pas top.. il dépend du serveur en fait.
getimagesize($_FILES[$fieldname]['tmp_name'][$key])

Il veux récuperer les dimensions du fichier du nom du fichier temporaire, MAIS dans le répertoire courant. Donc si les fichiers temp y sont, pas de probleme (Mais sa n'arrive jamais) sinon sa renvoi toujours false.
Alors soit tu l'upload et apres tu vérifies, soit tu fais par l'extention.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
5 août 2008 à 22:56
Non mais en fait je crois qu'il trouve pas les fichiers dans le répertoire temporaire car php.ini refuse de mettre à jour le répertoire.

Je lui indique de suivre un chemin et il inscrit toujours "no value" quand je vérifie la config du serveur. Et là je vois pas pourquoi. Ma variable est là et a une valeur. Je vois pas c'est quoi son problème. O_O

Il ne peut pas tester de la taille sur quelque chose qui n'existe pas, c'est évident. Là si tu as une idée du pourquoi, ça aiderait car je vois pas.

Mes images, je les upload dans le dossier temporaire, je vérifie et si c'est bon je mets dans le répertoire final. L'extension n'est pas toujours une bonne façon de faire car si je prend un fichier texte et que je le renomme en gif, ce sera considéré comme une image et pourtant s'en est pas une.

Donc voilà, je vais, au pire, écrire au support technique de l'hébergeur pour savoir pourquoi leur service est aussi pourri. NIARK NIARK :P
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
5 août 2008 à 23:20
Les hébergeur mutualisé ne permettent en general pas de modifier le dossier temporaire, et ne le rendent pas accesible
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
5 août 2008 à 23:22
Si si je l'avais fait sur le site d'avant et on a toujours été sur serveur partagé. Cependant, ils ne savent pas configurer un serveur comme un autre chez eux. Chaque technicien doit y mettre du sien et donc tu te retrouves avec 20 config différentes lol.

De toute évidence, je vais leur dire que je le faisais avant et que j'aimerais qu'il l'arrange pour que je puisse continuer. Après tout, c'était leur idée de changer et ils ont promis que tout fonctionnerait comme avant. A eux d'assurer maintenant XD
0
Tiller Messages postés 781 Date d'inscription mercredi 4 juillet 2007 Statut Membre Dernière intervention 14 septembre 2008 210
5 août 2008 à 23:32
Ils ne feront rien.
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
6 août 2008 à 20:50
Alors, le problème venait effectivement de là. La variable n'était pas prise en compte et donc les fichiers n'étaient stockés nul part et donc il ne pouvait effectivement pas voir que c'était une image puisque ça n'existait pas.

L'hébergeur a mis un dossier qui fonctionne dans php.ini (sans doute que c'est le seul dossier autorisé à ça ou je ne sais pas).

Mon formulaire fonctionne à nouveau correctement. Je n'avais donc rien oublié. Merci pour tes suggestions Tiller ;)

A+ tout le monde
0
X-Fan Messages postés 805 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 6 janvier 2010 19
6 août 2008 à 15:57
S'ils permettent de changer file_upload a "ON", ce serait ridicule qu'ils ne permettent pas ça. Et puis, tu ne le connais pas mon hébergeur. C'est pas un de ses machins connus et BS qui limite tellement les possibilités que tu ne peux quasiment plus rien faire sur ton propre site.

Comme ils avaient promis que le site profiterait du même service en le déplaçant, ils vont devoir coopérer. ^^
0