FORUM

forum / PHP / Warning: Variable passed to each() is not an array or object

Vous n êtes pas connecté

Page :1

Warning: Variable passed to each() is not an array or object

Auteurs Messages
filou80 Posté à 11h01 le 31 Dec 14

Membre inscrit le 25/03/2014
Messages : 120
Localisation : somme
Bonjour

J'ai une page de contact, est quand j'envoi un fichier ou meme sans fichier j'ai ce type d'erreur.

la ligne 173 c'est celle ci dans le code :

while (list($key, $val) = each($HTTP_POST_VARS)) {

Voici l'erreur que j'ai :

Warning: Variable passed to each() is not an array or object in /var/www/vhosts/yakasolution.fr/httpdocs/actioncontact.php on line 173 Extension du fichier incorrecte

voici mon code php :
<?php
//R&eacute;cup&eacute;ration des variables<br />
//Fichier nom du fichiers
$nomFichier  = $_FILES['fichier']['name'] ;
$tailleFichier  = $_FILES['fichier']['size'] ;
$nomTmp      = $_FILES['fichier']['tmp_name'] ;
$typeFichier   = $_FILES['fichier']['type'] ;
$error           = $_FILES['fichier']['error'] ;

$TO = "contact@yakasolution.fr";

$h  = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val
";
}

$nomTmp      = $_FILES['fichier']['tmp_name'] ;
$typeFichier   = $_FILES['fichier']['type'] ;
$chemin = "./recu/" ;
$nomFichier  = $_FILES['fichier']['name'] ;
$maxsize = 5000000; //on d&eacute;finit le poid maximal de l'image
$error = $_FILES['fichier']['error'] ;
$chemin = "./recu/" ;
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' , 'rar' , 'pdf' , 'zip' );// on definit un tableau contenant les extensions voulu
$tailleFichier  = $_FILES['fichier']['size'] ;
if ($error > 0)
 {
  exit('Veuillez reeayer');
 }
 if ( $tailleFichier > $maxsize) // si la taille est superieur la taille d&eacute;finit
  {
exit('<b>veuillez selectionner un fichier moins gros</b>');
 }
$extension_upload = strtolower(substr(strrchr($nomFichier, '.')  ,1));
if (!in_array($extension_upload,$extensions_valides) )
 {
 exit('Extension du fichier incorrecte');
 }
copy($nomTmp,$chemin.$nomFichier);


mail($TO, $nomFichier, $message, $h);
?>


newton Posté à 16h33 le 31 Dec 14

Membre inscrit le 08/08/2013
Messages : 2200
Localisation :
C'est normale, Vous essayez d'utiliser la fonction each () avec des variables qui ne sont pas  un tableau ou un objet. Je ne pense pas que cela marchera un jours.
Si vous voulez maintenir votre fonction each(), utilisez plutôt array.
filou80 Posté à 11h35 le 03 Jan 15

Membre inscrit le 25/03/2014
Messages : 120
Localisation : somme
bonjour

Merci pour l'aide mais cela n'a rien changer.
C'est depuis que j'ai changer d'hébergeur cela ne fonctionne pas je récupère bien le fichier dans le répertoire prévu mais je reçois un mail vide.

@+ Filou
Samomoi

Page : 1