In_array() expects parameter 2 to be array

Résolu/Fermé
lolerki Messages postés 606 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 1 mars 2017 - Modifié par lolerki le 6/02/2015 à 16:34
lolerki Messages postés 606 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 1 mars 2017 - 6 févr. 2015 à 16:58
Bonjour,

Je suis entrain de developper une fonction pour upload un fichier en php, mais je rencontre le problème suivant

"in_array() expects parameter 2 to be array, string given in"

Lorsque je souhaite vérifier l'extension du fichier. Je sais qu'il faut retourner un tableau (si je dis pas de bêtises) mais je ne comprends pas top commen faire.

Voici le code en question :

function upload($destination,$extension =false,$maxsize=false,$size=false)
{
 if(empty($_FILES['img']) || $_FILES['img']['error'] >0) //s'il n'y a des erreur
 {
  echo 'Erreur : l\'upload c\'est mal passer';
 }
 $ext = strtolower(substr(strrchr($_FILES['img']['name'], "."),1)); //verification des extensions
 if($extension !=false && !in_array($ext, $extension)) //on verifie si l'extension est correct
 {
  echo 'l\'extension ne correspond pas au type autoriser (png, jpg, bmp, jpeg)';
  return false;
 }
 if($maxsize !=false && $_FILES['img']['size'] > $maxsize)
 {
  echo 'La taille de l\image est trop élevèes';
  return false;
 }
 $dimension = getimagesize($_FILES['img']['tmp_name']);
 if($size != false && $dimension[0] > $size[0] || $dimension[1] > $size[1])
 {
  echo 'Les dimensions sont trop élevèes';
  return false;
 }
 
 return move_uploaded_file($_FILES['img']['tmp_name'], $destination.mt_rand(0,1000)."-".$_FILES['img']['name']);
}

if(!empty($_POST['nv_img']))
{

	if(upload("img","../", array("png","jpg","bmp","jpeg"),10240,array(800,600)) == true)
	{
		echo 'Le fichier à été télécharger avec succès !';
	}
}


Merci de votre aide !

2 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
6 févr. 2015 à 16:37
Salut,

tu sais que tu dois passer un tableau, mais par défaut, tu mets un booléen dans ta variable, ça va pas trop.

Mieux vaut passer un tableau vide comme valeur par défaut et contrôler si ce tableau n'est pas vide un peu plus bas.

Ensuite, il te dit que tu passes un string. Bah tu lui passes quoi à ce paramètre ? Le bout de code que tu montres ne permet pas de le savoir.
0