Bonjour,

J'utilise la variable $_FILES pour uploader des images, on peut poster un titre, du contenu et une image et lorsque je poste que du titre et du contenu logiquement je devrai avoir un message me disant que je n'ai pas choisi d'image et il me dit que l'extension est pas bonne alors que j'ai pas choisi de fichier...

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
<?php
if(isset($_POST['titre']) && isset($_POST['message']) && !empty($_POST['titre']) && !empty($_POST['message']))
    {
		if(isset($_FILES['image']))
		{
			$dossier = '../../uploads/';
			$fichier = basename($_FILES['image']['name']);
			$taille_maxi = 2097152;
			$taille = filesize($_FILES['image']['tmp_name']);
			$extensions = array('.png', '.gif', '.jpg', '.jpeg');
			$extension = strrchr($_FILES['image']['name'], '.'); 
			//Début des vérifications de sécurité...
			if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
			{
				 $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg';
			}
			if($taille>$taille_maxi)
			{
				 $erreur = 'Le fichier est trop gros.';
			}
			if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
			{
				 //On formate le nom du fichier ici...
				 $fichier = strtr($fichier, 
					  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
					  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
				 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
				 if(move_uploaded_file($_FILES['image']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
				 {
					  echo 'Upload effectué avec succès !';
				 }
				 else //Sinon (la fonction renvoie FALSE).
				 {
					  echo 'Echec de l\'upload !';
				 }
			}
			else
			{
				 echo $erreur;
			}
		}
		else if($_FILES['image']['name'] == '')
		{
			echo 'aucune image';
		}
?>
Merci d'avance.