Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1506 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Notice : Undefined Offset ??? [Resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Notice : Undefined Offset ??? [Resolu]

n°994112
mkracing66
Posté le 26-02-2005 à 13:24:31  profilanswer
 

Bonjour,
voila sous easyphp 1.7 g des notices qui reviennent sur toute une serie de comparaison de chaine depuis un log unicode, je me doute que ce notice provient d un array mais je ne pige pas pk, et ce que c reellement...
 
Voila par ex un bout de code ou juste g un notice :
 

Code :
  1. if ($CurrentFile = file('Backup_Logs/' . $temp))
  2. {
  3.   $Game = new LogParsed( $temp);
  4.  for ( $i=0; $i < count( $CurrentFile); $i++)
  5.  {
  6.   $Ligne       = explode( chr(9), $CurrentFile[ $i]);
  7.   //===== INFO ====
  8.   if (strcasecmp( $Ligne[1], 'Info')==0 and
  9.     strcasecmp( $Ligne[2], 'Absolute_Time')==0)
  10.   {
  11.    $Game->AbsoluteTime = $ligne[3];
  12.   }


 
G un notice sur le "if strcasecmp( $Ligne[1] " .....
 
Une idee ? Merci


Message édité par mkracing66 le 26-02-2005 à 20:38:10
mood
Publicité
Posté le 26-02-2005 à 13:24:31  profilanswer
 

n°994120
omega2
Posté le 26-02-2005 à 13:47:40  profilanswer
 

Ca serait super d'avoir le texte du notice pour pas parler dans le vide à partir de supositions tiré d'une boule de christal.

n°994136
KangOl
Profil : pointeur
Posté le 26-02-2005 à 14:07:12  profilanswer
 

et sors le count de ta boucle, pas besoin de la calculer a chaque fois...


---------------
Nos estans firs di nosse pitite patreye...
n°994213
mkracing66
Posté le 26-02-2005 à 15:56:53  profilanswer
 

omega2 a écrit :

Ca serait super d'avoir le texte du notice pour pas parler dans le vide à partir de supositions tiré d'une boule de christal.


 
j'aime bien la reponse un peu aggressive ou un peu foutage de gueule alors voila le message entier histoire de montrer que c ni une supposition ni du nostradamus powa :
Notice: Undefined offset: 1 in ..\easyphp\blablablabla on line 166
(and now look teh topic's title :whistle: )
 
Bon a priori il doit y avoir une couille dans le potage au niveau de la lecture du fichier peut etre, car si y a un pb avec $Ligne[1], c surement qu il ne trouve aucune valeur...

n°994215
mkracing66
Posté le 26-02-2005 à 15:57:48  profilanswer
 

KangOl a écrit :

et sors le count de ta boucle, pas besoin de la calculer a chaque fois...


 
ok c note, merci bien :)

n°994218
KangOl
Profil : pointeur
Posté le 26-02-2005 à 15:59:24  profilanswer
 

fait un print_r de $Ligne pour voir sont contenu...


---------------
Nos estans firs di nosse pitite patreye...
n°994231
omega2
Posté le 26-02-2005 à 16:08:53  profilanswer
 

if (isset($Ligne[1])){
// la case du tableau existe
}else{
// la case n'esiste pas, et si on utilise $Ligne[1] là dedans, on a le fameux "notice"
}
 
Si t'as eu ce notice, c'est par ce que le php.ini est réglé pour afficher aussi ce genre de notice et pas uniquement les erreurs.


Message édité par omega2 le 26-02-2005 à 16:09:53
n°994272
Hermes le ​Messager
Breton Quiétiste
Posté le 26-02-2005 à 17:04:43  profilanswer
 

omega2 a écrit :

if (isset($Ligne[1])){
// la case du tableau existe
}else{
// la case n'esiste pas, et si on utilise $Ligne[1] là dedans, on a le fameux "notice"
}
 
Si t'as eu ce notice, c'est par ce que le php.ini est réglé pour afficher aussi ce genre de notice et pas uniquement les erreurs.


 
Ce que je trouve pour ma part finalement très pratique une fois qu'on s'y est habitué.  


---------------
Expert en expertises
n°994313
omega2
Posté le 26-02-2005 à 18:52:03  profilanswer
 

Moi aussi, et ca réduit grandement les risques de production de code potentiellement peu sécurisé. Mais c'est sur que ca force à faire attention au code, par ce que le moindre écart et c'est un beau "notice" qui apparait. :lol:

n°994314
mkracing66
Posté le 26-02-2005 à 18:54:30  profilanswer
 

oui je suis au courant de ca, je veux justement etre en E_ALL...

mood
Publicité
Posté le 26-02-2005 à 18:54:30  profilanswer
 

n°994322
omega2
Posté le 26-02-2005 à 19:02:07  profilanswer
 

Bonne résolution, comme ça, tu produiras du code bien plus propre que ce qu'on voit parfois. :)

n°994324
mkracing66
Posté le 26-02-2005 à 19:10:06  profilanswer
 

Je reviens sur mon pb, que g vraiment delaisse cet aprem a cause du rugby :) , mais g beau mettre des print_r de partout, il m affiche bien les infos de mes tableaux EN PARTICULIER APRES LE EXPLODE.
 
Pourtant des qu il y a le bloc suivant, g un notice undefined offset :'(
 
if (strcasecmp( $Ligne[1], 'Info')==0 and
    strcasecmp( $Ligne[2], 'Absolute_Time')==0)

n°994327
mkracing66
Posté le 26-02-2005 à 19:16:06  profilanswer
 

Cela pourrait il venir du fait que mon fichier est un fichier unicode ?
 
[Edit:] on dirait que oui, qqun connait il une procedure rapide et facile pour parser tout le fichier unicode histoire de remplacer les caracteres speciaux, ou de le transformer dans une sorte de fichier textes "standard" ?


Message édité par mkracing66 le 26-02-2005 à 19:17:55
n°994329
omega2
Posté le 26-02-2005 à 19:17:18  profilanswer
 

print_r $Ligne;
te retourne bien 1=>'Info' et 2=>'Absolute_Time'? (ou d'autres mots mais bien avec les index 1 et 2)

n°994336
mkracing66
Posté le 26-02-2005 à 19:23:51  profilanswer
 

a priori Oui (cf ma reponse precedente)


Message édité par mkracing66 le 26-02-2005 à 19:24:08
n°994345
omega2
Posté le 26-02-2005 à 19:31:21  profilanswer
 

Bizare. Et il y a aucune ligne du fichier pour lequel il manquerait une donnée dans la variable tableau? D'aprés le message, ca devrait mais tu dis le contraire alors c'est bizare comme truc.

n°994365
mkracing66
Posté le 26-02-2005 à 20:00:05  profilanswer
 

un strcasecmp ne fonctionne pas a priori entre ma chaine recupere du fichier unicode et ma chaine de comparaison qd je parse :(
 
Une idee ?

n°994368
KangOl
Profil : pointeur
Posté le 26-02-2005 à 20:06:39  profilanswer
 

essaye un

Code :
  1. if(trim(strtolower($Ligne[0]))=="info" and trim(strtolower($Ligne[1])) =="absolute_time" )


---------------
Nos estans firs di nosse pitite patreye...
n°994375
mkracing66
Posté le 26-02-2005 à 20:26:40  profilanswer
 

ne change rien, tjs notice undefined offset, et n arrive pas a entrer dans la condition
 
G donc un gros pb du a l unicode :/

n°994380
mkracing66
Posté le 26-02-2005 à 20:36:13  profilanswer
 

Mon probleme etait encore plus profond que cela...car en fait c etait de n unicode 16bt
 
G donc trouve cette petite fonction dans un des commentaires de php.net
Ca marche nickel chrome donc on ne sait jamais ca pourra tjs aider qqun
 

Code :
  1. function utf16_decode( $str ) {
  2.    if( strlen($str) < 2 ) return $str;
  3.    $bom_be = true;
  4.    $c0 = ord($str{0});
  5.    $c1 = ord($str{1});
  6.    if( $c0 == 0xfe && $c1 == 0xff ) { $str = substr($str,2); }
  7.    elseif( $c0 == 0xff && $c1 == 0xfe ) { $str = substr($str,2); $bom_be = false; }
  8.    $len = strlen($str);
  9.    $newstr = '';
  10.    for($i=0;$i<$len;$i+=2) {
  11.        if( $bom_be ) { $val = ord($str{$i})  << 4; $val += ord($str{$i+1}); }
  12.        else {        $val = ord($str{$i+1}) << 4; $val += ord($str{$i}); }
  13.        $newstr .= ($val == 0x228) ? "\n" : chr($val);
  14.    }
  15.    return $newstr;
  16. }


Message édité par mkracing66 le 26-02-2005 à 22:28:46

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Notice : Undefined Offset ??? [Resolu]

 

Sujets relatifs
[Résolu] VS7-syntaxe highlighting avec n'importe quelle ext° fichierIIS, Tomcat, NTLM & REMOTE USER [RESOLU]
[Résolu][VBA Word] insertion de rendez-vous dans outlookexecutable de + de 7Mo [Résolu]
[C] Formule pour trouver un offset[résolu]tableau avec CSS, pb sous IE
Ressource (presque résolu)[résolu]cin desynchro! [resolu]
[resolu] [SWT et MVC] modifier une pripriété d'un GUI de l'extérieur ?[Résolu][Perl/Gtk2] Récupérer les éléments d'un Gtk2::TreeView
Plus de sujets relatifs à : Notice : Undefined Offset ??? [Resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR