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

El_Diablo666 Messages postés 294 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 3 décembre 2012 - 30 nov. 2007 à 01:29
El_Diablo666 Messages postés 294 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 3 décembre 2012 - 2 déc. 2007 à 02:10
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

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
30 nov. 2007 à 02:39
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.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2007 à 07:54
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).
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 nov. 2007 à 07:58
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.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2007 à 12:57
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
*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
El_Diablo666 Messages postés 294 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 3 décembre 2012
2 déc. 2007 à 02:10
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é!!!
0
Rejoignez-nous