Partage
  • Partager sur Facebook
  • Partager sur Twitter

Warning: key_exists()

Besoin d'aide

Sujet résolu
    8 mars 2007 à 14:56:24

    Bonjour à tous,

    Alors voilà mon problème.
    J'ai repris le script PHP d'une personne.

    Je l'intègre pour mon site est il y a une erreur.
    La voici :

    Warning: key_exists() [function.key-exists]: The first argument should be either a string or an integer on line 48


    Voici donc la ligne 48 de fichier :

    <?php
    if(key_exists($retour, $description)) {
    ?>


    Je ne vois vraiment pas le problème car en plus je ne connais pas cette fonction.
    Mais je pense que le contenu de la variable $description doit aussi être mis donc le voici :

    <?php
    $description = array('OK' => 'OK', 'ERROR 01' => 'ERROR 01', 'ERROR 02' => 'ERROR 02', 'ERROR 03' => 'ERROR 03', 'ERROR 04' => 'ERROR 04', 'ERROR 05' => 'ERROR 05');
    ?>


    J'espère que quelqu'un pourra m'aider :)

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2007 à 15:00:15

      cela ne saurait être qu'une fonction perso.
      si non, c'est array_key_exists
      • Partager sur Facebook
      • Partager sur Twitter
        8 mars 2007 à 15:06:40

        Citation : Bison

        cela ne saurait être qu'une fonction perso.
        si non, c'est array_key_exists



        Merci de ta réponse.
        Je viens de tester mais j'ai toujours la même erreur. :(
        • Partager sur Facebook
        • Partager sur Twitter
          8 mars 2007 à 15:28:31

          Salut,
          d'où vient $retour et qu'est-ce qu'il contient?
          • Partager sur Facebook
          • Partager sur Twitter
            8 mars 2007 à 15:41:55

            Vérifie que $retour est bien scalaire (entier, decimal, texte et booléen). En gros faut que ça soit pas un array ou ressource ou objet.
            • Partager sur Facebook
            • Partager sur Twitter
              8 mars 2007 à 16:20:29

              Citation : GuGus963

              Vérifie que $retour est bien scalaire (entier, decimal, texte et booléen). En gros faut que ça soit pas un array ou ressource ou objet.


              Le message serait différent.
              • Partager sur Facebook
              • Partager sur Twitter
                8 mars 2007 à 16:52:22

                Citation

                The first argument should be either a string or an integer on line 48


                Cela signifie bien (à peut de choses près) : "Le premier argument doit être soit une chaine de caractères soit un entier. L'erreur se situe à la ligne 48."

                ??
                • Partager sur Facebook
                • Partager sur Twitter
                  8 mars 2007 à 16:56:25

                  Citation : GuGus963

                  Citation

                  The first argument should be either a string or an integer on line 48


                  Cela signifie bien (à peut de choses près) : "Le premier argument doit être soit une chaine de caractères soit un entier. L'erreur se situe à la ligne 48."

                  ??


                  Oui scuse, j'étais ailleurs. Je n'avais même pas remonté son message, je venais de répondre à autre chose. :p
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 mars 2007 à 19:46:23

                    Pour la variable $retour j'ai cette fonction :

                    <?php
                    function sendSMS($to, $message, $from, $mode='expert'){
                        global $smsbox_user, $smsbox_pass, $api_path;
                        return @file_get_contents("$api_path?login=$smsbox_user&pass=$smsbox_pass&msg=".rawurlencode($message)."&dest=$to&mode=$mode&origine=".rawurlencode($from));
                       }
                    ?>


                    Puis après :

                    <?php
                    $retour = sendSMS($vnumero, $messagesms, 'Blobsy');
                    ?>
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 mars 2007 à 19:58:47

                      Pour formater des informations à passer en get, c'est urlencode() et pas rawurlencode() qu'il faut utiliser.
                      Qu'est-ce que le code suivant t'affiche?
                      $retour = sendSMS($vnumero, $messagesms, 'Blobsy');
                      var_dump($retour);
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 mars 2007 à 20:05:21

                        Je pense que tu retourne rien
                        Le @ devant le files_get_content signifie justement que la fonction ne renvoie pas de mess d'erreur. Essaye de le virer pour voir
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 mars 2007 à 20:14:06

                          Citation : anonymousguest

                          Pour formater des informations à passer en get, c'est urlencode() et pas rawurlencode() qu'il faut utiliser.
                          Qu'est-ce que le code suivant t'affiche?

                          $retour = sendSMS($vnumero, $messagesms, 'Blobsy');
                          var_dump($retour);


                          Il me retourne :

                          bool(false)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 mars 2007 à 20:32:40

                            Bien, maintenant tu sais que le problème vient du fait que file_get_contents() ne trouve pas le fichier :) . Dans la fonction tu devrais faire:
                            $url = "$api_path?login=$smsbox_user&pass=$smsbox_pass&msg=".urlencode($message)."&dest=$to&mode=$mode&origine=".urlencode($from);
                            echo $url;
                            return file_get_contents($url);

                            pour voir si l'adresse est bien celle que tu attendais et si le fichier existe.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 mars 2007 à 20:47:28

                              Je viens de le faire mais c'est toujours la même chose.
                              Mais je viens de trouver l'erreur.

                              Enfaite il y avait un https:// alors que c'était http://

                              Merci beaucoup à tous pour votre aide.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Warning: key_exists()

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown