IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Invalid argument supplied for foreach() avec $_post


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Par défaut Invalid argument supplied for foreach() avec $_post
    Bonjour,

    Je suis sous PHP5.5
    Je reçois d'un $_POST les données suivantes en faisant un print_r($_POST); :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [Ouvert] => Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 ) [button3] => Enregistrer [userid] => 79 )
    Pour moi, Ouvert est donc bien un array()

    Je fais une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($Ouvert as $value){
    echo "Valeur : $value<br />\n";
    }
    Mais elle ne donne rien !
    Aucun echo et le système me dit que $Ouvert n'est pas un array

    La chose me parait si simple que je ne comprends pas....

    Help !

  2. #2
    Membre éclairé
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Par défaut
    Avec certitude c'est mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Ouvert] => Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 )
    Qui n'est pas reconnu comme array par la boucle foreach...
    En fait ces données sont postées via un formulaire qui propose des cases à cocher pour prendre des options, il y a 12 options, donc 12 cases à cocher.
    Ces options viennent d'une table, on peut rajouter des options dans la table.
    L'utilisateur coche les options qu'il souhaite et clic sur enregistrer...
    Alors on récupère les données postées de dessus qui semblent ne pas être un tableau...
    Comment faire pour qu'elles deviennent un tableau ?

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    tu peux poster le message d'erreur complet stp

  4. #4
    Membre éclairé
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Par défaut
    Je n'ai pas de message d'erreur.
    Je suis sur OVH, j'ai mis le .ovhconfig en development et il me dit simplement "Invalid argument supplied for foreach()"
    La fonction marchait super bien avant de passer en PHP5.5, elle fonctionnait en PHP4...

    La boucle foreach ne marche pas du tout...
    Donc je pense que mes données postées ne sont pas reconnues comme array, comment les forcer à devenir un array ?

    Voila le code HTML du formulaire qui envoi les données

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Gestion des catégories par utilistaeurs</title>
    <meta name="Description" content="Gestion des cat&eacute;gories par utilistaeurs" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="../../css/contact.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div align="center">
      <p>&nbsp;</p>
      <table width="500" border="0" cellpadding="5" cellspacing="0" class="cadre1">
        <tr>
          <td colspan="2" bgcolor="#6D94E4"><span class="txttitre">Cat&eacute;gories  de l'utilisateur :
              DEMOS      </span></td>
        </tr>
        <tr>
          <td bgcolor="#666666"><font color="#FFFFFF">Cat&eacute;gorie</font></td>
          <td bgcolor="#666666"><font color="#FFFFFF">Ouverte</font></td>
        </tr>
        <form id="form2" name="form1" method="post" action="modif_cat_user.php" enctype="multipart/form-data">
     
        <tr>
          <td bgcolor="#CCCCCC">Perso</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="1"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">Clients</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="2"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">Fournisseurs</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="3"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">Administrations</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="4"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">R&eacute;seau</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="5"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">collaborateurs</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="6"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">Temporaire</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="7"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">10</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="10"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">11</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="11"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">12</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="12"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">13</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="13"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">14</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="14"  /></td>
          </tr>
     
        <tr>
          <td bgcolor="#CCCCCC">15</td>
          <td bgcolor="#CCCCCC"><input name="oouvert[]" type="checkbox" id="oouvert[]" value="15"  /></td>
          </tr>
             <tr>
          <td colspan="2" align="center" bgcolor="#6D94E4"><input type="submit" name="button3" id="button3" value="Enregistrez vos modifications" />
            <input name="userid" type="hidden" id="hiddenField" value="79" /></td>
        </tr></form>
        <tr>
          <td colspan="2" align="center" bgcolor="#6D94E4"><a href="user.php" class="lien"><strong>Retour aux utilisateurs</strong></a><strong> | <a href="index.php" class="lien">Retour au menu</a></strong></td>
        </tr>
      </table>
      <p>&nbsp;</p>
    </div>
    </body>
    </html>

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    c'est étrange...
    Le problème ne viendrait pas de l'encodage du fichier par hasard ? Tu peux vérifier ?


    Suite à l'arrêt du support des anciennes versions de PHP MySQL par OVH, je viens de finir la reprise d'un site complet mélangeant PHP 4, 5 et MySQL 4.0 vers PHP 5.6, utf-8, MySQL 5.5... Et je te dis bon courage !!

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Lol, lis ton code source tu as mis name="oouvert[]" avec foreach ($_POST['oouvert'] as $k => $v) y a plus de problèmes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Warning: Invalid argument supplied for foreach()
    Par billyrose dans le forum Langage
    Réponses: 1
    Dernier message: 27/02/2009, 15h36
  2. [Tableaux] Invalid argument supplied for foreach()
    Par kifouillou dans le forum Langage
    Réponses: 10
    Dernier message: 16/05/2008, 16h53
  3. [Tableaux] Invalid argument supplied for foreach
    Par Lionel57 dans le forum Langage
    Réponses: 1
    Dernier message: 20/12/2007, 13h15
  4. Invalid argument supplied for foreach()
    Par Rajhonson dans le forum Langage
    Réponses: 4
    Dernier message: 16/11/2006, 14h31
  5. Réponses: 11
    Dernier message: 19/05/2006, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo