Notice: Undefined offset: 1 in .....!???

Signaler
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012
-
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012
-
salut,

J'ai déja posté pour ca mais ca répond tjr pas!!! 

Voici mon code :

<?
ini_set ("max_execution_time", "21600");
require ("config.inc");

//////
$con=mysql_connect("127.0.0.1",$db_user,$db_pass);
$conex=mysql_select_db($db_name,$con);
//$con_string = "host=$db_host port=5432 dbname=$db_name user=$db_user password=$db_pass";
//$conex = pg_connect ($con_string);

$log = fopen ($log_file, "r");

if ($log <> "") {
   $err = 0;
   $pasadas = 0;
   if (!feof($log)) {
      $linea = fgets($log);
      $arr = explode(' ', $linea);
      list ($hora, $mili) = explode ('.', $arr[0]);
      $tiempo = date("m/d/y H:i:s", $hora).".$mili";
     
   ///////////   $res mysql_query ("SELECT time FROM log WHERE time '$tiempo';") or die(mysql_error());   //$res pg_query ($conex, "SELECT time FROM log WHERE time '$tiempo'");
      if (mysql_num_rows($res))
      {
         $continua = 0;
         echo "No se puede procesar este archivo, ya existe un registro en la B.D con el mismo tiempo que el primer registro del archivo, posiblemente se deba a que este ya fue procesado
";
         $start = time();
      }
      else
      {
         $continua = 1;
         $start = time();
      }
   }

   $i = 0;
   while (!feof($log) && $continua == 1) {
      $j = 0;
      foreach ($arr as $str)
         if ($str <> '') {
            $registro[$j] = $str;
            $j++;
         }
      list ($tiempo, $transcurrido, $equipo_remoto, $codigo_status, $bytes, $metodo, $url, $autenticacion, $peerstatus_peerhost, $tipo) = $registro;
      if (strpos($url, '//') != false)
         list ($proto, $aux, $dir, $dir_arg) = explode ('/', $url, 4);
      else
         list ($dir, $dir_arg) = explode ('/', $url, 4);
      $dir_arg = addslashes ($dir_arg);
      $dir_arg = substr ($dir_arg, 0, 1023);
      list ($codigo, $status) = explode ('/', $codigo_status);
      list ($peerstatus, $peerhost) = explode ('/', $peerstatus_peerhost);
      list ($hora, $mili) = explode ('.', $tiempo);
      $tiempo = date("m/d/y H:i:s", $hora).".$mili";
      list ($tipo1, $tipo2) = explode ('/', $tipo);    ////////////?????

      $res = mysql_query ("INSERT INTO log (time,elapsed,remote_host,code,status,bytes,method,protocolo,direccion,argumento_url,username,peerstatus,peerhost,type1,type2) VALUES('$tiempo',$transcurrido,'$equipo_remoto','$codigo','$status',$bytes,'$metodo','$proto','$dir','$dir_arg','$autenticacion','$peerstatus','$peerhost','$tipo1','$tipo2');") or die(mysql_error());
   //$res = pg_query ($conex, "INSERT INTO log (time, elapsed, remote_host,code, status, bytes, method, protocolo, direccion, argumento_url, username, peerstatus, peerhost, type1, type2) VALUES ('$tiempo', $transcurrido, '$equipo_remoto', '$codigo', '$status', $bytes, '$metodo', '$proto', '$dir', '$dir_arg', '$autenticacion', '$peerstatus', '$peerhost', '$tipo1', '$tipo2')");
     
   if (mysql_affected_rows())        
//if (pg_affected_rows($res))
     
      $pasadas++;
      else {
         $err++;
         echo "
Error insertando: INSERT INTO log (time, elapsed, remote_host,code, status, bytes, method, protocolo, direccion, argumento_url, username, peerstatus, peerhost, type1, type2) VALUES ('$tiempo', $transcurrido, '$equipo_remoto', '$codigo', '$status', $bytes, '$metodo', '$proto', '$dir', '$dir_arg', '$autenticacion', '$peerstatus', '$peerhost', '$tipo1', '$tipo2')
";
      }

      $linea = fgets($log);
      $arr = explode(' ', $linea);
      $j = 0;
      foreach ($arr as $str)
         if ($str <> '') {
            $registro[$j] = $str;
            $j++;
         }
   }

   ///////////////
   mysql_query ("VACUUM ANALYZE");
   //pg_query ("VACUUM ANALYZE");
   mysql_close ();
   //pg_close ($conex);
  
   fclose($log);
   $end = time();
   $duracion = ($end - $start) / 60.0;
   $start = date("m/d/y H:i:s", $start);
   $end = date("m/d/y H:i:s", $end);
   $prom = ($err * 100.0)/($pasadas + $err);
   echo "
Procesadas: $pasadas
Errores: $err
Promedio Errores: $prom%";
   echo "
Inicio: $start - Finalización: $end - Duración: $duracion Minutos";
}
?>

Ca me sort l'erreur :

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\squid_log\parse.php on line 78

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\squid_log\parse.php on line 78

Notice: Undefined offset: 1 in c:\users\el_diablo\desktop\squid_log\parse.php on line 78

Procesadas: 336
Errores: 0
Promedio Errores: 0%
Inicio: 11/27/07 00:28:40 - Finalización: 11/27/07 00:28:40 - Duración: 0 Minutos

l'erreur est en bleu dans le code!!!!De l'aide SVP, Merci!

5 réponses

Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
19
Salut,

Première chose :

"J'ai déja posté pour ca mais ca répond tjr pas!!! "
Et alors ? Quelqu'un sur ce site est-il engagé contractuellement pour fournir une réponse dans un certain délai ? Pas que je sache.

Ensuite, ta variable $tipo elle dépend du contenu d'un fichier dont on ignore le contenu. Donc pour aider, c'est pas gagné.
Maintenant, avant de râler parce que la solution ne t'arrive pas sur un plateau, fais un petit effort et lis l'erreur.
Undefined offset: 1
Ton tableau (auquel tu tentes d'accéder à la ligne 78) n'a pas d'élément indexé 1. Toi seul sait ce qu'il contient, ton tableau.
Et puis la ligne 78 n'est certainement pas celle que tu as indiquée en bleu. Toi seul également sait quels sont les numéros des lignes.

Alors prends-toi un peu par la main, cesse de râler, et ne m'envoie plus de message privé pour exiger de l'aide comme tu le fais.
Ensuite, quand t'as fait ça, tu peux poser des questions mais en fournissant suffisamment d'informations, et des informations CORRECTES. Sinon, personne ne t'aidera.

Bonne nuit.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
Hello,

en effet tu dois laisser le temps aux gens de te répondre sans répêter tes questions dans le forum : tout le monde a ses occupations et ne passe pas sa vie sur ce forum pour répondre aux autres.

Ceci dit, je vais contredire Neige quant à ton erreur (pour une fois ;-) ) : et à toi, je te dis que ton message est pourtant clair! Tu essayes d'accéder à l'index 1 d'un tableau n'en ayant pas.
Or, que fais tu ici :
list($a, $b) = explode('/', $c);
Tu crées bien un tableau via un explode de ta chaine $c.
Et tu tentes bien d'accéder à 2 index de ton tableau : l'index 0 et l'index 1.
PHP te dit que l'index 1 n'existe pas. Ca veut dire quoi à ton avis ? que $c (ou $tipo dans ton code) ne contient pas le caractère '/', simplement. Donc ton explode renvoie un tableau avec un seul élément (index 0) (le contenu de ta chaîne $tipo au complet).
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
Ah j'avais lu en travers le message de Neige...
Il faut bien que tu comprennes, el diablo, que les gens venant aider sur ce forum sont des gens comme toi (et moi) : c'est pour eux juste un plaisir, un passe-temps. Ils n'y gagnent rien d'autre que le plaisir d'aider.
Alors râler si tu ne reçois pas l'aide en des temps qui te satisfont...franchement...personne ici ne te doit rien.
La prochaîne fois, patiente.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
42
Salut

"Alors prends-toi un peu par la main, cesse de râler, et ne m'envoie
plus de message privé pour exiger de l'aide comme tu le fais.
"=> ca fait peut aux nouveaux posteurs ca... "va t'il me harceller a mon tour jusqu'a ce qu'il ai la reponse ?"

Bref

explode ('/', $tipo);

=>
$a=
explode ('/', $tipo); print_r($a);
     list ($tipo1, $tipo2) =$a;

ajoute un print_r pour afficher ce que te sort ce explode, ca aidera deja au debug.

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
Messages postés
294
Date d'inscription
jeudi 8 février 2007
Statut
Membre
Dernière intervention
3 décembre 2012

salut a tous, je vous remercie pour les reponses, mais mon attention n'etai pas d'harceller qui que ce soi!!! desolé, rallé n'etai pas mon attention....! encor merci et désolé!!!