Problème d'upload

Signaler
Messages postés
14
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
14 mars 2006
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Salut à tous,
J'ai un problème avec mon upload, lorsque je charge une photo j'ai l'erreur suivante Notice: Undefined variable: name_file in c:\program files\easyphp1-7\www\trombi2\load.php
Si je ne charge pas de photo il me met bien mon image par défaut mais
je ne comprend pas pourquoi il ne connait plus ma variable name_file au moment de l'affichage de ma photo
Si quelqu'un à ume solution à mon problème merci d'avance

Voici mon code:


//CHARGEMENT PHOTO


if ($_FILES['fichier']['name']!='')//si le champ photo est différent de vide
{
if( isset($_POST['upload']) )//si le fichier est uploadé
{

$content_dir = '/Program Files/EasyPHP1-7/www/TROMBI2/photo/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier']['tmp_name'];//fichier : nom de la zone de saisie du fichier
//tmp_name : nom temporaire du fichier

if( !is_uploaded_file($tmp_file) )//si le fichier n'est pas uploadé
{
echo("Le fichier n'a pas été uploadé");
}

// vérification de l'extension

$type_file = $_FILES['fichier']['type'];

if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') )
{
exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination

$name_file = $_FILES['fichier']['name'];

if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

echo '
';
}
}
else
{$name_file='defaut.jpg';}//affichage de l'image par défaut



echo '';//affichage de la photo

7 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Parce que $name_file est définie dans un bloc, donc sa portée est limitée à ce bloc.
Tu dois initialiser ta variable AVANT ce bloc.
Messages postés
14
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
14 mars 2006
2
J'ai essayé de la définir avant mon premier if, je n'ai plus d'erreur mais l'upload ne fonctionne plus
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

je suis hors sujet mais :







// vérification de l'extension



$type_file = $_FILES['fichier']['type'];




if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg')
&& !strstr($type_file, 'bmp') && !strstr($type_file,
'gif') && !strstr($type_file, 'png') )

{

exit("Le fichier n'est pas une image");

}





c'est une horreur, j'ai posté un code source ici en éspérant ne plus revoir ces absurditées...

$_FILES['monfichier']['type'] est un champ rempli par le navigateur, et
un utilisateur qui aurait de mauvaises intentions pourrait donc,
s'amuser avec ton fichier... tu devrais utiliser les fonctions exif ou
gd pour vérifier le type de ton image...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Il n'a jamais fonctionné, à mon avis...ton code n'est pas bon. Lis ceci :
http://fr2.php.net/features.file-upload
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ouais, mais on ne peut pas AVANT d'avoir uploadé l'image.
Moi, je checke généralement avant, de cette manière, pour faire un premier filtre. Puis j'uploade, et je vérifie à nouveau avec GD. Si c'est pas bon, j'efface le fichier et basta.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

malam, de toute façon, quand ton fichier est dans un
répertoire temporaire, alors tu ne crains rien... alors moi je ne fais
qu'une vérification : celle avec gd... mais il est très important de la
faire...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ouais c'est sûr. M'enfin bon...lol. Je filtre quand même avant, ça limite tjrs les accès au serveur un minimum (il y en a tjrs qui sont stoppés à ce moment là).