Bonjour à tous me revoilà pour une question et pour comprendre le fonctionnement de mon script qui n'est pas au point...

voici mon souci...

Actuellement je suis sur la création d'un site, qui contient une galerie photos.
J'ai une page de gestion qui me permet d'uploader multiples images en une seule requête dans une BDD. (mais le contrôle des fichiers ne travail pas correctement...)
Nom : for-l1.PNG
Affichages : 405
Taille : 4,6 Ko

ici le script de contrôle
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
48
49
50
51
52
53
54
55
56
57
58
59
60
else if($choix == 'newgal'){
         if(isset($_POST['nomdos'], $_FILES['photo']) && !empty($_POST['nomdos']) && !empty($_FILES['photo'])){
		require('galeries-ctrl.php');
		if($_SESSION['erreurs_albums'] == 0){
			$nomdos = "".ucfirst(preg_replace('/\s/ ', '-', $_POST['nomdos']))."";
			$dossier = 'mes-albums/';
			$taille_maxi = 500000000;
			$extensions = array('jpeg','png','gif','jpg');
			if(!is_dir($dossier.$nomdos)){
				mkdir($dossier.$nomdos);
				require('../includes/PDO.php');
				$req = "INSERT INTO `galeries` (`dossier`, `imgs`) VALUES (?,?)";
				$sql = $pdo->prepare($req);
				for($i=0; $i < count($_FILES['photo']['name']); $i++){
					$image = basename($_FILES['photo']['name'][$i]);
					$img_tmp = $_FILES['photo']['tmp_name'][$i];
					$taille = filesize($_FILES['photo']['tmp_name'][$i]);
					$extension = strtolower(substr(strrchr($_FILES['photo']['name'][$i],'.'),1));

					if($taille == ''){ $image = ''; $erreur = 'Image '.$i.' manquante !';}

					if(!in_array($extension, $extensions)) $erreur = 'Votre image '.$i.' n\'a pas l\'extention<br>TYPE: png, gif, jpg, jpeg !';  
                                        //* Si j'envois le formulaire avec la balise file vide, c'est ce message qui apparaît ! Alors que ca devrai être le contrôle au dessus...

					if($taille>$taille_maxi) $erreur = 'Votre image '.$i.' est trop lourde !';

					if($img_tmp > 1) $erreur = 'Maximum 1 photos par dossier !';
                                        //* Si j'envois le formulaire avec la balise file avec plusieurs photos, ce message qui n'apparaît pas !
					if(!isset($erreur)){
						$image = strtr($image,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËéèêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ','AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn');
						$image = preg_replace("/[^a-z0-9\_\-\.]+$/","",strtolower($image));
						$send = move_uploaded_file($img_tmp, $dossier.$nomdos.'/'.$image);
						$sql->execute(array($nomdos, $image));
					}
					else{
						$informations = Array(
										true,
										'Oupss !',
										'Oupss !<br><br>'.$erreur.'',
										'',
										ROOTPATH.'/galeries/gestion-galeries.php?cat=galeries&choix=newgal',
										3
										);
						require_once('../info-bulle.php');
						exit();
					}
					if(!$send){
						$informations = Array(
										true,
										'Oupss !',
										'Oupss !<br><br>Téléchargement des images échoué !',
										'',
										ROOTPATH.'/galeries/gestion-galeries.php?cat=galeries&choix=newgal',
										3
										);
						require_once('../info-bulle.php');
						exit();
					}
				}
Idem sur une autre page de contrôle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if($img_tmp > 3) $erreur = 'Maximum 3 photos par articles !';
a l'inverse que si je selectionne 1-3 images le message d'erreur du nombres s'affiche... et que j'en selectionne 4 ou + aucun message s'affiche...

voilà une petite idée de mon problème ?

pour précision le formulaire et le contrôle se passe sur la même page en POST (et GET autres donnees)...