15 réponses
Ululo
Messages postés
28
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
31 décembre 2008
7
31 déc. 2008 à 18:14
31 déc. 2008 à 18:14
Ta toute dernière ligne de code :
Me paraît être la fautive.
Après un 'if' :
1) On précise une condition entre parenthèses.
2) On précise une ou des actions entre accolades.
Et ici, si ton action est sûrement :
Que tu n'as qu'à mettre entre accolades, je ne comprends pas quelle est ta condition.
Tu veux que ça écrive "Transfert réussi" si $resultat a quoi ? S'il est égal à quelque chose en particulier ?
Je te propose donc :
edit. :
Euh, il n'y a pas que cette ligne qui est fausse ! À de nombreux endroits tu as oublié des accolades, parenthèses, points-virgules.
if ($resultat) echo "Transfert réussi";
Me paraît être la fautive.
Après un 'if' :
1) On précise une condition entre parenthèses.
2) On précise une ou des actions entre accolades.
Et ici, si ton action est sûrement :
{echo "Transfert réussi";}
Que tu n'as qu'à mettre entre accolades, je ne comprends pas quelle est ta condition.
Tu veux que ça écrive "Transfert réussi" si $resultat a quoi ? S'il est égal à quelque chose en particulier ?
Je te propose donc :
if($resultat=='qqchose'){echo "Transfert réussi";}
edit. :
Euh, il n'y a pas que cette ligne qui est fausse ! À de nombreux endroits tu as oublié des accolades, parenthèses, points-virgules.
zoby44
Messages postés
818
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
199
31 déc. 2008 à 18:25
31 déc. 2008 à 18:25
Inutile, elle ne sert a rien quoi. Tu peux la supprimer. et non, ce n'est pas que pour les fonctions mais a chaque fin de ligne, sauf quand tu commance une condition ou un boucle :
$variable = true ; //On met un ";" if ($variable == true) //On en met pas { code code code ; //On met un ";" }
zoby44
Messages postés
818
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
199
31 déc. 2008 à 18:33
31 déc. 2008 à 18:33
un truc comme ca :
ca te supprime une ligne en plus ^^,
Sinon, pourquoi des <?php ?> partout ?
un <?php au début du code et un ?> a la fin devrais suffire étant donné que tu n'affiche aucun code html
Enfin si tu préfère :
if (move_uploaded_file($_FILES['icone']['tmp_name'],$nom)) { echo "Transfert réussi"; }
ca te supprime une ligne en plus ^^,
Sinon, pourquoi des <?php ?> partout ?
un <?php au début du code et un ?> a la fin devrais suffire étant donné que tu n'affiche aucun code html
Enfin si tu préfère :
<?php if ($_FILES['icone']['error'] > 0) $erreur = "Erreur lors du tranfsert"; if ($_FILES['icone']['size'] > $maxsize) $erreur = "Le fichier est trop gros, veuillez recommencer avec un fichier plus léger"; $image_sizes = getimagesize($_FILES['icone']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) $erreur = "Image trop grande, veuillez recommencer avec une image plus petite"; //Créer un dossier 'fichiers/1/' mkdir('fichier/1/', 0777, true); //Créer un identifiant difficile à deviner $nom = md5(uniqid(rand(), true)); $nom = "avatars/{$id_membre}.{$extension_upload}"; $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$nom); if (move_uploaded_file($_FILES['icone']['tmp_name'],$nom)) { echo "Transfert réussi"; } ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
31 déc. 2008 à 18:37
31 déc. 2008 à 18:37
Je vois pas mal d'erreur dans cette partie:
déja ça ne sert à rien de mettre
?> et
<?pph
aussitôt
on sort du php par ?> quand on a a ecrire du code HTML par exemple
Ensuite:
<?php
////il maque les ; à la fin des lignes
$_FILES['icone']['name'] //Le nom original du fichier, comme sur le disque du visiteur, (exemple: mon_icone.png).
$_FILES['icone']['type'] //Le type du fichier. Par exemple, cela peut être "image/png"
$_FILES['icone']['size'] //La taille du fichier en octets
$_FILES['icone']['tmp_name'] //L'adresse vers le fichier uploadé dans le répertoire temporaire
$_FILES['icone']['error'] //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé
?>
par contre $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$nom);
if ($resultat) echo "Transfert réussi";
tu as le droit de mettre comme ça car:
si le move_uploded... a fonctionné, $resultat vaut TRUE
et on peut tester if($resultat) //sous entendu ==true
déja ça ne sert à rien de mettre
?> et
<?pph
aussitôt
on sort du php par ?> quand on a a ecrire du code HTML par exemple
Ensuite:
<?php
////il maque les ; à la fin des lignes
$_FILES['icone']['name'] //Le nom original du fichier, comme sur le disque du visiteur, (exemple: mon_icone.png).
$_FILES['icone']['type'] //Le type du fichier. Par exemple, cela peut être "image/png"
$_FILES['icone']['size'] //La taille du fichier en octets
$_FILES['icone']['tmp_name'] //L'adresse vers le fichier uploadé dans le répertoire temporaire
$_FILES['icone']['error'] //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé
?>
<?php $_FILES['icone']['name'] ; //Le nom original du fichier, comme sur le disque du visiteur, (exemple: mon_icone.png). $_FILES['icone']['type']; //Le type du fichier. Par exemple, cela peut être "image/png" $_FILES['icone']['size']; //La taille du fichier en octets $_FILES['icone']['tmp_name']; //L'adresse vers le fichier uploadé dans le répertoire temporaire $_FILES['icone']['error']; //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé
par contre $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$nom);
if ($resultat) echo "Transfert réussi";
tu as le droit de mettre comme ça car:
si le move_uploded... a fonctionné, $resultat vaut TRUE
et on peut tester if($resultat) //sous entendu ==true
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zoby44
Messages postés
818
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
199
31 déc. 2008 à 19:10
31 déc. 2008 à 19:10
T'inquiète, ouais, on est tous passés par la.
Bon, j'ai regarder le code d'un peu plus près, et il y a encore pas mal d'erreur...
- Les variable $max... ne sont pas déclarée, php ne peux pas les deviner tout seul
- Les verification d'erreur ne servent a rien car le fichier est quand même uploadé si il y a une erreur
- La création du dossier "fichier/1/" est inutile car elle ce fait à chaque envoi d'image (même quand il y a une erreur) de plus le nom ne change pas en fonction du membre, il y a écrasement du répertoire a tout les coups.
- L'extension n'est pas récupérée donc impossible pour php d'uploader le fichier
- Comment fait tu pour afficher l'image une fois uploadée, elle n'est récupée nulle part et tu lui donne un nom cryptée au hasard, a mon avis, le nom du membre suffit
Ca doit être a peu près tout, voila ce que ca donne avec une petite correction :
Tu feras attention a $nom, j'ai mis $_SESSION['pseudo'], mais c'est sans doute autre chose. Je pense que ca va mieux marcher.
Bon, j'ai regarder le code d'un peu plus près, et il y a encore pas mal d'erreur...
- Les variable $max... ne sont pas déclarée, php ne peux pas les deviner tout seul
- Les verification d'erreur ne servent a rien car le fichier est quand même uploadé si il y a une erreur
- La création du dossier "fichier/1/" est inutile car elle ce fait à chaque envoi d'image (même quand il y a une erreur) de plus le nom ne change pas en fonction du membre, il y a écrasement du répertoire a tout les coups.
- L'extension n'est pas récupérée donc impossible pour php d'uploader le fichier
- Comment fait tu pour afficher l'image une fois uploadée, elle n'est récupée nulle part et tu lui donne un nom cryptée au hasard, a mon avis, le nom du membre suffit
Ca doit être a peu près tout, voila ce que ca donne avec une petite correction :
<?php $maxsize = 1024; // On déclare la taille maxi $maxwidth = 800; // On déclare la largeur maxi $maxheight = 600; // On déclare la hauteur maxi $filename=$_FILES['icone']['name']; // On récupère l'extension $extension=strrchr($filename,'.'); $extension=substr($extension,1) ; $image_sizes = getimagesize($_FILES['icone']['tmp_name']); if ($_FILES['icone']['error'] > 0) { $erreur = "Erreur lors du tranfsert"; } elseif ($_FILES['icone']['size'] > $maxsize) { $erreur = "Le fichier est trop gros, veuillez recommencer avec un fichier plus léger"; } elseif ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $erreur = "Image trop grande, veuillez recommencer avec une image plus petite"; } elseif ($extension == 'jpg' OR $extension == 'gif' OR $extension == 'png') // On vérifie que le fichier est une image { $nom = $_SESSION['pseudo']; mkdir('fichier/'.$nom.'/', 0777, true); $destination = "avatars/".$nom.".".$extension; // On indique la destination if (move_uploaded_file($_FILES['icone']['tmp_name'],$destination)) { $erreur = "Transfert réussi"; } } else { $erreur = "Le fichier doit être au format jpg / gif / png"; } echo $erreur; ?>
Tu feras attention a $nom, j'ai mis $_SESSION['pseudo'], mais c'est sans doute autre chose. Je pense que ca va mieux marcher.
zoby44
Messages postés
818
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
199
31 déc. 2008 à 18:19
31 déc. 2008 à 18:19
Salut, déja il y a ce qu'a dit Ululo et toute ta partie :
est inutile, tu devrais mettre $nom = $_FILE['icone']['name'];
et surtout ne pas oublier le ;
<?php $_FILES['icone']['name'] //Le nom original du fichier, comme sur le disque du visiteur, (exemple: mon_icone.png). $_FILES['icone']['type'] //Le type du fichier. Par exemple, cela peut être "image/png" $_FILES['icone']['size'] //La taille du fichier en octets $_FILES['icone']['tmp_name'] //L'adresse vers le fichier uploadé dans le répertoire temporaire $_FILES['icone']['error'] //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé ?>
est inutile, tu devrais mettre $nom = $_FILE['icone']['name'];
et surtout ne pas oublier le ;
J'ai pas compris ce que tu veux dire par inutile.
Mais pour le ; c'est juste dans le cas d'un fonction non ? Et la je ne suis pas dans une fonction. Enfin je pense...
Je ne suis pas un roi en PHP ^^
Mais pour le ; c'est juste dans le cas d'un fonction non ? Et la je ne suis pas dans une fonction. Enfin je pense...
Je ne suis pas un roi en PHP ^^
Merci beaucoup de ton aide précieuse :)
Mais je ne sais pas où les fichiers vont maintenant :(
Je sais je suis un nul --'
Mais tout le monde passe par là non ?
Mais je ne sais pas où les fichiers vont maintenant :(
Je sais je suis un nul --'
Mais tout le monde passe par là non ?
Maintenant j'ai cette ligne d'erreur.
Warning: mkdir() [function.mkdir]: File exists in /home/upload-be/html/reception.php on line 18
Merci de m'expliquer tout en détail :)
Mais comment ça se fait que j'ai cette nouvelle ligne d'erreur ?
Mais comment ça se fait que j'ai cette nouvelle ligne d'erreur ?