|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
dsl c'est encore moi.
![]() formulaire avec upload de photo, je me suis largement basé sur un tuto du site, j'ai fait la base... et ça marche pas. le but est de placé la photo dans un dossier précis et de mettre seulement le chemin dans la base. Q1: je suis en local, si je test l'upload est ce que ça joue ? Q2: y a-t-il une boulette dans mon schmilblik? Code :
en bdd qui marche bien avant ça et un header après qui fonctionne aussi. |
||
|
|
00
|
|
|
#2 | ||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
Citation:
Citation:
Le résultat de la fonction move_uploaded_file n'est pas testé donc si le déplacement échoue le chmod échouera aussi (ce serait également l'endroit pour procéder à une insertion/mise à jour de votre base). De plus, le chemin fournit à la fonction chmod est incomplet, je pense qu'il devrait être : $dest_dossier . $dest_fichier. Dernière chose : sera toujours vrai même si aucun fichier n'a été sélectionné par l'utilisateur. Il faudrait utiliser le code d'erreur ou tester que les éléments de ce tableau ne sont pas vides pour déterminer l'absence ou non d'une tentative d'upload. |
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
ça marche pas = ça upload pas.
la seconde partie n'est pas encore dans le script je veux déjà arriver à uploader avant de rajouter le chemin à la base.le dossier final est toujours le même, reste le nom de la photo. existe t il une fonction type mysqlerror() pour l'upload? je fais toujours mes tests moteur en circonstance parfaites donc avec le bon type de fichier, la bonne taille... je vois la sécurité quand ça marche. c'est la dernière partie de l'inscription des users, donc en début de script y a juste un UPDATE pour rajouter la date de création du profil(qui fonctionne bien lui) puis l'upload (qui upload pas) et un header pour rediriger vers la page d'accueil. j'ai changer le chmod mais ça upload toujours pas. EDIT:alors j'ai retirer le header de la fin et je suis sur une page blanche comme si il n'y avait pas d'erreur! j'ai essayé un echo $_FILES['photo']['error']; il me disait undefined index photo |
|
|
00
|
|
|
#4 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Avez-vous bien ajouté enctype="multipart/form-data" à votre balise form ? Que vous donne var_dump($_FILES); en condition ? |
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
désolé de tout ce temps,j'étais très occupé.
donc le enctype est la première chose que j'ai vérifié; avant de poster je lis les autre poste qui pourrai me concerner et j'avais déjà vu cette remarque donc j'ai vérifié.il est ok. Citation:
comprend pas la question. |
|
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
j'ai modifié un peu mon script, suite à la lecture
des autres post sur l'upload. Code :
"le formulaire n'a pas été télécharger" je ne comprend plus rien! j'ai 4 pages à la suite,toutes sur le meme modèle, les 3 premier form font bien leur boulot et pas celui la! cela vient-il de mon script? de ma page? |
||
|
|
00
|
|
|
#7 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Ce résultat laisse supposer que votre formulaire ne possède aucun champ nommé profil4 (à moins que vous n'utilisiez la méthode GET au lieu de POST). Est-ce le cas et à quoi correspond-il ? Peut-on avoir le code du formulaire pour commencer s'il n'est pas trop long ?
|
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
je croyais qu'il s'agissait de vérifié l'existence du formulaire!
![]() Code :
j'ai donc modifié le script en remplaçant le nom du form par le nom du champ,'avatar'. j'obtiens ceci: Undefined index: avatar in C:\...\uplodphoto.php on line 16 voici la ligne 16: Code :
if( !in_array( substr(strrchr($_FILES['avatar']['name'], '.'), 1), $extensions_ok ) ) |
||
|
|
00
|
|
|
#9 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Code :
2. L'attribut name (ou même id) du formulaire (balise form) ne joue aucune rôle lors de sa transmission : vous n'obtiendrez pas cette information à sa réception, pour traitement. Il vous faut donc revoir votre test : (pour voir ce qui vous est transmis, il n'y a qu'à observer le résultat de : et éventuellement $_FILES lorsqu'il y a upload) |
||
|
|
00
|
|
|
#10 | ||
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
j'ai corrigé la faute
j'ai donc modifié le script comme suit: Code :
undefined index avatar on line 17 à savoir celle-ci: Code :
if( !in_array( substr(strrchr($_FILES['avatar']['name'], '.'), 1), $extensions_ok ) ) |
||
|
|
00
|
|
|
#11 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si le test suivant :
fonctionne et non les variables $_FILES['avatar']... il y a un problème. Un fichier uploadé en PHP ne figure d'aucune manière dans le tableau $_POST mais uniquement par $_FILES dès lors que la balise form possède l'attribut enctype de telle sorte que sa valeur soit multipart/form-data
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
et pourtant tel est bien le cas!
![]() j'ai remodifier le script avec 2 var_dump un pour $_POST et un pour $_FILES j'obtien un array(1) avec une chaine contenant le nom de mon image pour le premier et un array(0) pour le second. dans ma balise form y a method="post",pour moi c'est normal mais je débute, ce serai pas ça le problem? warwill, spécialité...heu...les trucs cheloud!! |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
probleme résolut!!
un petit / à la fin de mon chemin en plus, j'ai déplacer le chmod et je l'ai changer en 755( au lieu de 0755). et 2 ou 3 testes plus loin ça marche. merci à tous.
|
|
|
00
|
|
|
#14 |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
Encore et toujours de probleme d'upload!
la même mais sur server! même page, même script, et rien n'est uploader. par contre je suis pas sur du chemin.j'aimerais utiliser la méthode absolu(si je me trompe pas!!). mon site est dans un dossier /web, et dans ce dossier j'ai un /photo dans lequel je veux uploader les images. j'ai laissé tout les messages de vérification dans le script mais il n'affiche rien comme si tout passait, alors que l'upload n'est pas fait. je ne désespère plus j'ai dépassé ce stade...
|
|
|
00
|
|
|
#15 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vous devez vous assurer que le chemin utilisé est correct. Pour cela, vous pouvez vous baser sur les fonctions realpath/getcwd (obtenir le chemin absolu du répertoire courant) ou encore éventuellement sur la variable $_SERVER['DOCUMENT_ROOT'] (qui devrait indiquer la racine de votre site).
Vous devez également donner les droits d'écriture au serveur web sur le répertoire accueillant ces fichiers uploadés. Faites également des tests simples : assurez-vous que vos fichiers respectent les types que vous avez indiqués et surtout qu'ils soient de taille tout à fait respectable (suivant configuration de PHP et celles que vous avez implantées). |
|
|
00
|
|
|
#16 |
|
Membre du Club
![]() William RICHARDInscription : septembre 2007 Messages : 156 ![]() |
merci pour cette fonction (getcwd) qui m'a permit de tout résoudre.
c'était juste un probleme de chemin, comme je le présentais. ![]() Encore merci à tous pour tout ce que vous faites ici. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com