Erreur en PHP : tableau

Nouveau WRInaute
Bonjour à tous ! :)
Voilà, je dois faire l'upload de 6 images (via formulaire), et pour éviter de recopier plusieurs fois le code d'upload, je fais une boucle... jusque là, tout va bien !
Mais j'ai une erreur bien bizarre ! Voici le début du code utilisé :
(A savoir que "fphoto1" puis "fphoto2", etc, sont les noms des champs du formulaires)
Code:
$i=1;
$erreur=0;
while ($i<7) {
	$nom_file[$i] = $_FILES['fphoto'.$i]['name'];
	$taille[$i]   = $_FILES['fphoto'.$i]['size'];
	$tmp[$i]      = $_FILES['fphoto'.$i]['tmp_name'];
	$i++;
}

En clair, je récupère les noms et tailles des images... Tout va bien jusqu'à ce qu'il arrive à la taille.. Il me renvoie l'erreur suivante :

Warning: Cannot use a scalar value as an array in c:\program files\easyphp1-8\www\api googlemap\ok\admin\ajout_go.php on line 123

Evidemment, il me la renvoie 6 fois... Je ne comprends pas, car le coup du [$i] marche partout pourtant... Sauf là...

Si quelqu'un peut m'aider... Merci d'avance ! :)
 
WRInaute occasionnel
Dur à dire sans voir le code complet. Es-tu certain que $taille n'est pas utilisé ailleurs comme variable scalaire (par ex : $taille = 12) ?
 
Nouveau WRInaute
loobot a dit:
Dur à dire sans voir le code complet. Es-tu certain que $taille n'est pas utilisé ailleurs comme variable scalaire (par ex : $taille = 12) ?

Exact, une "autre" variable était utilisée ailleurs et avait en plus une valeur fixe... J'y pensais plus du tout en repartant sur ce code :oops: .
Merci pour le coup de main ! :)

A présent j'ai un problème... Puis-je abuser ? :D

Voici le problème :
J'arrive maintenant à uploader toutes mes images dans mon dossier, pas de problème (j'ai adapté un script trouvé pour une image dans une boucle pour faire mes 6 images).
Seulement j'ai deux problèmes :

- Déjà je n'arrive pas à mettre le nom de l'image dans la Base de Données....... :( il me renvoie le message du "die".
- Ensuite, si jamais j'y arrive, comment faire en sorte que tout soit ajouté sur la même ligne (même ID) ??

Voici le code utilisé (pas forcément très propre, je vous l'accorde) :
(l'insertion en base est vers le milieu, sous la série de echo)

Code:
$i=1;
while ($i<7) {
	$fphoto[$i]=$_FILES['fphoto'.$i]['name'];
	$i++;
}

//  DEFINITION DES VARIABLES 
	$target     = '../upload/';  // Repertoire cible
	$extension  = 'jpg';      // Extension du fichier sans le .  ### Rq : j ai rajoute la possibilite d un GIF dans le code, voir plus bas au troisieme IF .
	$max_size   = 500000;     // Taille max en octets du fichier (en octets. 100000 o = 100 Ko )
	$width_max  = 1000;        // Largeur max de l'image en pixels
	$height_max = 1000;        // Hauteur max de l'image en pixels 

//  DEFINITION DES VARIABLES LIEES AU FICHIER
$i=1;
$erreur=0;
while ($i<7) {
	$taille_b[$i]   = $_FILES['fphoto'.$i]['size'];
	// Attention ! Ici $fphoto[$i] équivaut au $nom_file (ou $_FILES['photox']['name'] ) utilisé plus haut.
	$tmp[$i]      = $_FILES['fphoto'.$i]['tmp_name'];

	// UPLOAD DES FICHIERS

	    // On vérifie si le champ est rempli
	    if(!empty($_FILES['fphoto'.$i]['name'])) {
	        // On vérifie l'extension du fichier
	        if((substr($fphoto[$i], -3) == $extension) || ((substr($fphoto[$i], -3) == 'gif'))) {
	            // On récupère les dimensions du fichier
	            $infos_img = getimagesize($_FILES['fphoto'.$i]['tmp_name']);
	            // On vérifie les dimensions et taille de l'image
	            if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fphoto'.$i]['size'] <= $max_size)) {
	                // Si c'est OK, on teste l'upload
	                if(move_uploaded_file($_FILES['fphoto'.$i]['tmp_name'],$target.$_FILES['fphoto'.$i]['name'])) {
	                    // Si upload OK alors on affiche le message de réussite
	                    echo '<b>Image numero '.$i.' uploadée avec succès !</b>';
	                    echo '<hr />';
						echo '<table><tr><td>';
	                    echo '<b>Fichier :</b> ', $_FILES['fphoto'.$i]['name'], '<br />';
	                    echo '<b>Taille :</b> ', $_FILES['fphoto'.$i]['size'], ' Octets<br />';
	                    echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
	                    echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
						echo '</td><td><img src="../upload/'.$fphoto[$i].'"></img>';
						echo '</td></tr></table>';
	                    echo '<hr />';
	                    echo '<br /><br />';
						$insert_ph="INSERT INTO apigoogle_fiches('f_photo[$i]') VALUES('$fphoto[$i]')";
						$req=mysql_query($insert_ph) or die("Erreur upload photo");
						$i++;
	                } else {
	                    // Sinon on affiche une erreur système
	                    echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fphoto'.$i]['error'], '</b><br /><br />';
						$erreur=1;
						$i++;
	                }
	            } else {
	                // Sinon on affiche une erreur pour les dimensions et taille de l'image
	                echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />';
					$erreur=1;
					$i++;
	            }
	        } else {
	            // Sinon on affiche une erreur pour l'extension
	            echo '<b>Votre image ne comporte pas l\'extension .jpg ou .gif !</b><br /><br />';
				$erreur=1;
				$i++;
	        }
	    } else {
	        // Sinon on envoie 0 a la place de la photo dans la BDD
	        $fphoto[$i] = "0";
			echo "Pas de photo numero ".$i." ajout&eacute;e <br><br>";
			$i++;
		}
	}
 
Discussions similaires
Haut