Verification d'un champ type file [Résolu]

Signaler
Messages postés
249
Date d'inscription
jeudi 17 février 2005
Statut
Membre
Dernière intervention
29 août 2011
-
Messages postés
249
Date d'inscription
jeudi 17 février 2005
Statut
Membre
Dernière intervention
29 août 2011
-
Bonjour,

Voile mon probleme, je n'arrive pas à tester correctement un champ file! il passe à chaque fois le test et me genere une erreur ->

//Je teste si $_POST
if (isset($_POST['titre']) && isset($_POST['descrip']) && isset($_FILES['image'])) {

//Je Verifie le champ titre
if (empty($_POST['titre'])) $err = 4;
//Je Verifie le champ descrip
else if (empty($_POST['descrip'])) $err = 5;
//Je Verifie le champ du lien de la photo
else if ($_FILES['error'] != 0) $err = 6; //Ici, si rien n'est rentré dans le champs, il ne passe pas dans ce else if....

//Je verifie si une erreur a été detecté stad1
if ($err) {
header("location: ../client/upload.php?err=".$err."&titre=".$_POST['titre']."&des=".$_POST['descrip']."");
exit();
}

//Je recup les données de l'image a transferer
$tab = getimagesize($_FILES['image']['tmp_name']); //Si pb renvoi false //Et donc me genere une erreur ici
if (!$tab) $err = TRUE;

Merci d'avance

www.exile.fr

3 réponses

Messages postés
249
Date d'inscription
jeudi 17 février 2005
Statut
Membre
Dernière intervention
29 août 2011

Ben, le prob, ce que ca me fais la meme chose!

Je viens de trouver, si le champs name du tableau $_FILES n'est pas remplie, le champ error de celui ci est toujours a 0...

Donc le code deviens :

//Je teste si les var des champs sont créés
if (isset($_POST['titre']) && isset($_POST['descrip']) && isset($_FILES['image'])) {

//Je Verifie le champ titre
if (empty($_POST['titre'])) $err = 4;
//Je Verifie le champ descrip
else if (empty($_POST['descrip'])) $err = 5;
//Je Verifie le champ du lien de la photo
else if ($_FILES['name'] != "") $err = 6;

//Je verifie si une erreur a été detecté stad1
if ($err) {
//echo $err;
header("location: ../client/upload.php?err=".$err."&titre=".$_POST['titre']."&des=".$_POST['descrip']."");
exit();
}

//Je recup les données de l'image a transferer
$tab = getimagesize($_FILES['image']['tmp_name']); //Si pb renvoi false
if (!$tab) $err = TRUE;

J'ai conservé les ELSE IF pour que les erreur survenue soit dans l'ordre et donc ne prend pas la derniere detecté.

bye

www.exile.fr
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
if (isset($_POST['titre']) && isset($_POST['descrip']) && isset($_FILES['image']))
{
if(empty($_POST['titre'])) $err = 4;
if(empty($_POST['descrip'])) $err = 5;
if($_FILES['error'] != 0) $err = 6;

}

...
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
ceci dit si ($_POST['titre']) n'est pas renseigné
tu ne rentres pas dans les tests
ce serait plutot

if (!isset($_POST['titre']) || !isset($_POST['descrip']) || !isset($_FILES['image']))
{
if(empty($_POST['titre'])) $err = 4;
if(empty($_POST['descrip'])) $err = 5;
if($_FILES['error'] != 0) $err = 6;
}
...