Verification d'un champ type file

Résolu
cs_destiny Messages postés 249 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 29 août 2011 - 31 mars 2006 à 09:45
cs_destiny Messages postés 249 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 29 août 2011 - 31 mars 2006 à 10:42
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

cs_destiny Messages postés 249 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 29 août 2011
31 mars 2006 à 10:42
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
3
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
31 mars 2006 à 10:11
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;

}

...
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
31 mars 2006 à 10:13
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;
}
...
0
Rejoignez-nous