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 :

[Tableaux] Fatal error: Cannot use string offset as an array


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut [Tableaux] Fatal error: Cannot use string offset as an array
    Bonjour

    j'ai l'erreur "Fatal error: Cannot use string offset as an array" et j'ai ajouté la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $lang = array();
    $data = (array) $data['ResultSet']['Result'];
    le problème persiste... avez vous une idée?

    Est ce que ca peut venir de mon serveur Lamp sous Ubuntu 8.10?

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lang = array();
    $data = (array) $data['ResultSet']['Result'];
    pourquoi as-tu 2 fois data?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $lang = array();
    $data = (array) $lang['ResultSet']['Result'];

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Bonjour

    Il s'agut en faut d'une extension Worpress "simple tags" et j'ai cette erreur depuis que je suis passé d'un serveur mutualisé sous php4 à un dédié sous php5.

    l'erreur complete est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Cannot use string offset as an array in /var/www/webynux/wp-content/plugins/simple-tags/2.7/inc/simple-tags.admin.php on line 1920
    je joins la page en question dans un zip car la page php seule est trop lourde...

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    est-ce toi qui a mis $lang à la place de $data ?
    Si oui il faut remettre $data = (array) $data['ResultSet']['Result'];

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par batataw Voir le message
    est-ce toi qui a mis $lang à la place de $data ?
    Si oui il faut remettre $data = (array) $data['ResultSet']['Result'];

    Euh, non, j'ai fait un copier coller de ton précedent message....je n'y connais rien en PHP alors pour eviter les fautes de frappe...

    Malheureusement, l'erreur persiste!!!

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $result = $data['ResultSet']['Result'];
    $data = array();
    $data[] = $result;

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    L'erreur a la ligne 1920 est toujours la...
    est ce que ce serait pas un soucis dans la config de PHP???
    c mon premier dédié et je tatonne quant a l'installation...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Non c'est pas un soucis de la config PHP, c'est juste que tu ne peux pas transvaser un String dans un Array avec un simple casting.

    L'erreur est toujours la? peux-tu me dire quelle ligne pose probleme maintenant.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    toujours la ligne 1920

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    J'avais compris que c'était la ligne 1920 mais entre temps je t'ai filé une solution pour corriger ce bug (3 nouvelles lignes). A quelle ligne correspond cette erreur.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Je reprends, il faut que tu me donnes le code PHP associé a cette ligne pour y voir plus clair.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    a la ligne 1920 il y a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $data['ResultSet']['Result'];

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Okay j'ai besoin de voir a quoi ressemble la variable $data. peux-tu poster le résultat de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var_dump($data);
    exit;
    $result = $data['ResultSet']['Result'];

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    dois je créer un ficjier php avec ce code a l'interieur et le lancer dans le navigateur?

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    non tu dois juste placer les lignes ci-dessous dans ton fichier simple-tags.admin.php juste avant $result = $data['ResultSet']['Result'];

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var_dump($data);
    exit;

  17. #17
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    l'erreur est claire, tu ne peux pas utiliser un élément de tableau comme un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // FAUX : $data = (array) $data['ResultSet']['Result'];
    // CORRECT :
    $data = (array) $data['ResultSet'];
    // CORRECT : 
    $result = $data['ResultSet']['Result'];

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    il me dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { ["ResultSet"]=> array(1) { ["Result"]=> array(6) { [0]=> string(18) "position dominante" [1]=> string(19) "navigateur internet" [2]=> string(12) "implantation" [3]=> string(4) "abus" [4]=> string(9) "microsoft" [5]=> string(6) "europe" } } }

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    A la vue de ta variable $data, le code ci-dessous devrait fonctionner.
    Peux-tu le réessayer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $result = $data['ResultSet']['Result'];
    $data = array();
    $data = $result;
    n'oublie pas de supprimer la ligne d'origine.

  20. #20
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par batataw Voir le message
    A la vue de ta variable $data, le code ci-dessous devrait fonctionner.
    Peux-tu le réessayer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $result = $data['ResultSet']['Result'];
    $data = array();
    $data = $result;
    n'oublie pas de supprimer la ligne d'origine.
    Aucun intérêt de déclarer $data comme un tableau si tu lui passes une string ensuite.

    Soit tu fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $result = $data['ResultSet']['Result'];
    $data = array($result);
    // $data = array();
    // $data[] = $result;
    Soit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $result = $data['ResultSet']['Result'];
    $data = $result;
    Ce qui, au passage, équivaut à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = $data['ResultSet']['Result'];
    Mais bon je vois pas l'intérêt de perdre toutes les informations de $data.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Forum] Fatal error: Cannot use string offset as an array
    Par Yuki_Hime dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 31/07/2009, 23h55
  2. Fatal error: Cannot use string offset as an array
    Par tremeur53 dans le forum Langage
    Réponses: 8
    Dernier message: 31/10/2008, 09h44
  3. Réponses: 2
    Dernier message: 10/04/2008, 18h16
  4. Réponses: 4
    Dernier message: 14/02/2008, 20h41
  5. [Tableaux] Cannot use string offset as an array ?
    Par haffouff dans le forum Langage
    Réponses: 12
    Dernier message: 21/07/2006, 15h27

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