Warning: Illegal string offset

Résolu/Fermé
Sinistrus Messages postés 1008 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 2 février 2023 - 23 août 2013 à 15:44
Sinistrus Messages postés 1008 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 2 février 2023 - 23 août 2013 à 16:15
Bonjour à tous !

Petite aide svp, ce code ci-dessous me revois l'erreur suivante :
Warning: Illegal string offset 'Rang' in header.php on line 74
<?php if($s_Rang == "Administrateur"){ ?>
Mon menu
<?php } elseif ($s_Rang['Rang'] == "RH") { ?> 
Mon menu
<?php } elseif ($s_Rang['Rang'] == "Henkel") { ?>
Mon menu
<?php }else echo "Une erreur s'est produite : Rang ".$s_Rang." !"; ?>


Or pendant la connexion, tout se passe bien, et si je me connecte en tant qu'Administrateur, ça passe, si je me met en RH ou autre ca ne passe plus...

J'ai essayé de faire ceci :
<?php if($s_Rang == "Administrateur"){ ?>
Mon menu
<?php }else echo "Une erreur s'est produite : Rang ".$s_Rang." !"; ?>

<?php if ($s_Rang['Rang'] == "RH") { ?> 
Mon menu
<?php }else echo "Une erreur s'est produite : Rang ".$s_Rang." !"; ?>

<?php if ($s_Rang['Rang'] == "Henkel") { ?>
Mon menu
<?php }else echo "Une erreur s'est produite : Rang ".$s_Rang." !"; ?>


Mais pareil, il me renvois la même erreur...

Cependant,
<?php }else echo "Une erreur s'est produite : Rang ".$s_Rang." !"; ?>
affiche bel et bien le rang de l'utilisateur...
et le print_r aussi m'affiche bel et bien le rang...

Pouvez-vous m'aiders vp ?

2 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
23 août 2013 à 16:12
Salut !

Attention au type de ta variable $s_Rang :
Dans tes if, tu utilise $s_Rang, et $s_Rang['Rang'].
$s_Rang est a priori un string, jusque la tout va bien, d'où le fait que ton premier if avec administrateur fonctionne.
Par contre, $s_Rang['Rang'] est un tableau associatif qui pointe vers la case du tableau nomé 'Rang'. Tu ne peux donc pas dire que ta variable st un string en la déclarant de tel, et ensuite la mettre dans un if en disant que c'est un tableau associatif !

4
Sinistrus Messages postés 1008 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 2 février 2023 17
23 août 2013 à 16:15
Punaise !
Oui tu as raison...
<?php } elseif ($s_Rang == "RH") { ?>
fonctionne.

Merci encore ^^
0