Cannot access offset of type string on string... WTF ?

ephelya Messages postés 284 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 25 juillet 2022 - 12 mai 2022 à 16:54
ephelya Messages postés 284 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 25 juillet 2022 - 12 mai 2022 à 17:31
Bonjour,

J'ai une fonction php (appelée en ajax) qui m'nevoie ce message d'erreur (Cannot access offset of type string on string) et je ne comprends absolument pas d'où ça sort... Help !
Voici l'appel à ma fonction
    if ($flwprosp) { $result = flwprosp($flwprosp, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse,  $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug); }
</code
Voici les données qui sont reçues
<code php>
Array
(
    [flwprosp] => 2151300759
    [nrp] => 1
    [civilite] => Mme
    [iduser] => baa9188a-0dd0-4f50-aaab-65e421cca195
    [tel] => tel
    [mail] => mail
    [nom] => nom
    [prenom] => prenom
    [adresse] => adress
    [cpostal] => 00000
    [ville] => ville
    [where] => splae
    [date] => 23/06/12:00
    [comment] => eer
    [nextact] => 5
    [noway] => 1
    [debug] => 1
)


et voici m fonction
    function flwprosp($idplace, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse,  $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug)
    {
       echo " flwprosp($idplace, $civilite, $iduser, $nrp, $tel, $mail, $nom, $prenom, $adresse,  $cpostal,$ville, $where, $date, $comment, $nextact, $noway, $debug)";
        if ($noway==1) { $client['statut'] = 4; }
        if ($nrp==1) { $client['statut'] = 3; } else  { $client['statut'] = 2;  }        if ($nrp = 1) { $nextact = 7; }


        //on met à jour le bien
        $table = "Annonces";
        $where["idlbc"] = $idplace;
        $place["adresse"] = $adresse;
        $place["cpostal"] = $cpostal;
        $place["ville"] = $ville;
        \Models\Admin::update($place, $table, $where, "", $debug);
}


Ça me dit

flwprosp(2151300759, Mme, baa9188a-0dd0-4f50-aaab-65e421cca195, 1, tel, mail, nom, prenom, adress, 00000,ville, splae, 23/06/12:00, eer, 5, 1, 1)
<br />
"Fatal error</b>: Uncaught TypeError: Cannot access offset of type string on string in /homepages/41/d736140878/htdocs/escalierb/admin/www/ajx/ajax.php:55"

et la ligne 55t, c'est cette ligne
 $where["idlbc"] = $idplace;

D'après ce que j'ai compris il y aune histoire de tentatve d'accéder à l'index d'un tableau ou je ne sais quoi, or la valeur $idplace vaut 2151300759, donc un bnal entier... Qu'est-ce q i m'échappe ????
Merci d'avance pour votre aide, c'est une grosse urgence pour moi...

Configuration: Macintosh / Firefox 99.0
A voir également:

4 réponses

yg_be Messages postés 20293 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2022 1 225
12 mai 2022 à 17:07
bonjour, le point de départ, ce serait de partager ton code complet.
merci d'indiquer le nom de chaque fichier que tu partages.

qu'as-tu assigné à
$where
avant l'appel à la fonction?
as-tu écrit ce code?
le testes-tu pour la première fois?
0
yg_be Messages postés 20293 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2022 1 225
12 mai 2022 à 17:14
qu'essaies-tu de faire en ligne 55?
c'est quoi ce
$where["idlbc"]
?

As-tu essayé de traduire le message d'erreur?
Moi, cela donne "Impossible d'accéder à un décalage de type chaîne sur une chaîne".
Cela t'indique qu'il n'est pas autorisé d'utiliser un index de type chaîne ("idlbc") sur une chaîne ($where).

N'est-ce pas clair?
0
ephelya Messages postés 284 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 25 juillet 2022 2
12 mai 2022 à 17:21
Bon ben j'ai trouvé ma réponse toute seule, ça vient de la mis à jour de mon hébergement qui est passé en php8, il y a pas mal de fonctions dans mes scripts qu'il n'apprécie plus du tout... ;-)
Du coup pour ceux qui auraient le même pb, la bonne syntaxe, c'est
 $where = ["list_id" => $idplace];
0
yg_be Messages postés 20293 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2022 1 225
12 mai 2022 à 17:28
Pour finir, que fais-tu avec le paramètre $where reçu par la fonction?
0
ephelya Messages postés 284 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 25 juillet 2022 2
12 mai 2022 à 17:23
dsl, je ne trouve pas comment on met en statut "Résolu", à chaque fois je galère..
0
yg_be Messages postés 20293 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2022 1 225
12 mai 2022 à 17:29
Pour mettre en "résolu": les
...
sous la question initiale.
0
ephelya Messages postés 284 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 25 juillet 2022 2
12 mai 2022 à 17:31
Pour répondre yg_be (merci pour ton aide !), oui j'ai écrit ce code, et je l'ai utilisé des centaines de fois. La seule chose qui a changé c'est la verrsion PHP de mon serveur... ;-)
Mais voilà un problème réglé, merci quand même !
0