[Php] pb : Uninitialized string offset

[Résolu/Fermé]
Signaler
Messages postés
38
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
10 mai 2007
-
 zaww -
Bonjour à tous !
J'ai un problème de "Uninitialized string offset: 0 in /var/www/html/evamed/evamed-stats/evamed-stats/testRconnection.php dans la fonction suivante :

$retourR=$connexion->read();
$res=$retourR;
$array_res=explode("\n",$res);
for ($i=0;$i<count($array_res); $i++) {
if ($array_res[$i][0]=="$")
$var = substr( $array_res[$i] , 1 , strlen($array_res[$i]));
else if ($array_res[$i][0]=="[")
$val = substr( $array_res[$i] , 3 , strlen($array_res[$i]));
else
$i++;
}
echo "valeur de $var = $val";

Si quelqu'un pouvait m'aider ce serait cool !
Merci d'avance

3 réponses

Le problème vient du fait que vous cherchez a comparer le premier caractère d'une chaine potentiellement vide.

Si le tableau $array_res contient une chaine vide, l'expression $array_res[$i][0] provoque une erreur.
13
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
38
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
10 mai 2007

Je vois je te remercie de ta réponsse mais je pense que $array_res renvoit bien un tableau de chaîne de caractères. Or ma variable $res n'est pas vide, c'est pourquoi je me demande d'où peut venir l'erreur.
Relisez attentivement ma réponse.

exemple si $res ="aaaa\n\nbbbb"
alors $array_res contient :
"aaaa"
""
"bbbb"

C'est plus clair ?
Messages postés
38
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
10 mai 2007
> bipede
Ok problème réglé ! Merci beaucoup et bonne journée
bonjour g + ou- le même prob sauf que je n'est pas de tableau

voici le code :

while ($field = mysql_fetch_object($fields))
{
$val=$values[$field->nom]; // ici le prob
if ($val=="")
if (isset($_GET["nom"]))
{
$val=$_GET[$field->nom];
$smarty->assign($field->nom,generateField($field, $val,array_merge($_GET,$values)));
}
if ($field->type=="date")
$smarty->assign("value_".$field->nom,htmlentities(formatDate($val)));
else
$smarty->assign("value_".$field->nom,htmlentities($val));
}

merci d'avance
j'ai le meme probleme ce que j'ai remarqué que dans les deux cas la requete peut ne pas retourner des valeur
donc je pense a verifier le nombre d'objets
$req = "select count(*) from .... where (....);
$res = mysql_query($req,$link);
$val = mysql_fetch_row($res);
if ($val['0']!= 0)
{
// tu fais ton traitement
}
else
{
.....
}