Tengo el siguiente problema de una pagiga html con input tipo hidden al continuar invocar a un programa php y este me duplica el registros entregado por la pagina anterior.
 
El codigo html es:
 
 
 
 
 
   <html>
 
   <head>
 
   <title>:: Mantenedor de Archivos  ::</title>
 
   </head>
 
 <BODY>
 
 <br>
 
 <script language="JavaScript">
 
   function js_NextForm ( nform, valor, bbdd, tabla, secuencial )
 
   {
 
      var frm = document.forms[nform];
 
      // var frm = nform;
 
      //alert ( nform  ) ;
 
      frm.tipo.value  = valor;
 
      frm.bbdd.value  = bbdd;
 
      frm.tbl.value   = tabla;
 
      frm.idreg.value = secuencial;
 
      frm.submit ();
 
   } // end js_NextForm()
 
   </script>
 
 
 
   <form name="frmtablas" method="POST" action="./php_WriteTabla.php">
 
   <input type="hidden" name="tipo"  value="">
 
   <input type="hidden" name="bbdd"  value="">
 
   <input type="hidden" name="tbl"   value="">
 
   <input type="hidden" name="idreg" value="">
 
   <input type="hidden" name="tpord"   value="">
 
   <input type="hidden" name="ordcam" value="">
 
   <input type="hidden" name="addquery" value="">
 
<br>
 
<input type="hidden" name="write" value="INSERT+INTO+153_archivo.tar_nac+VALUES+%28+  %2700%27%2C%27%27%2C%27000%27%2C%27%27%2C%272008-06-18%27%2C%279999-12-31%27%2C%27%27%2C%27A%27%2C%27%27%2C%27%27%2C%27%2  7%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%  27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27  +%29%3B">
 
   <br>
 
   <table width="50%" border="0" align="center">
 
       <tr><td>
 
      <div align="center">
 
      <INPUT id="button" tabIndex="34" type="submit" value="Anular" OnClick="history.back();">
 
      </div>
 
     </td><td>
 
      <div align="center">
 
      <INPUT id="button" tabIndex="34" type="submit" value="Continuar" OnClick="js_NextForm ('frmtablas','write','153_archivo', 'tar_nac','');">
 
      </div>
 
     </td><tr>
 
</table>
 
 
 
 
 
El siguiente codigo PHP (php_WriteTabla.php) es que realiza la acción de ingresar el registro. Pero este registro se duplica  y aun mas raro que esto no ocurre siempre. 
 
 
 
 
 
<?php
 
//function php_WriteTabla ( $bbdd, $nametbl )
 
//{
 
   /* ..................................................  ....................... */
 
   /* defino el nombre y la clave que viene de la autentificacion de apache     */
 
   /* ..................................................  ....................... */
 
   $lhost    = "localhost";
 
   $remoteIP = ( !empty( $_SERVER["REMOTE_ADDR"] ) ) ? $_SERVER["REMOTE_ADDR"] : "";
 
   $luser    = ( !empty( $_SERVER["REMOTE_USER"] ) ) ? $_SERVER["REMOTE_USER"] : "pfica";
 
   $lclave   = ( !empty( $_SERVER["PHP_AUTH_PW"] ) ) ? $_SERVER["PHP_AUTH_PW"] : "doors";
 
 
 
   $db = mysql_connect( $lhost, $luser, $lclave );
 
 
 
   function phpgb_fixCharHtml ( $mess )
 
  {
 
     $mess = str_replace( "ñ", "ñ", $mess );
 
     $mess = str_replace( "Ñ", "Ñ", $mess );
 
     $mess = str_replace( "á", "á", $mess );
 
     $mess = str_replace( "Á", "Á", $mess );
 
     $mess = str_replace( "é", "é", $mess );
 
     $mess = str_replace( "É", "É", $mess );
 
     $mess = str_replace( "í", "í", $mess );
 
     $mess = str_replace( "Í", "Í", $mess );
 
     $mess = str_replace( "ó", "ó", $mess );
 
     $mess = str_replace( "Ó", "Ó", $mess );
 
     $mess = str_replace( "ú", "ú", $mess );
 
     $mess = str_replace( "Ú", "Ú", $mess );
 
     $mess = str_replace( "  ", "  ", $mess ); 
 
     return ( $mess );
 
  }
 
 
 
   function php_msn_div( $msn, $class )
 
   {
 
      $result = $msn;
 
      phpgb_fixCharHtml( $result );
 
      echo "<br>";
 
      echo "<DIV";
 
      if( !empty ( $class ) )
 
        echo " class=".$class;
 
      echo ">";
 
      print_r ( $result );
 
      echo "</DIV>\n";
 
      unset( $result );
 
   } // end php_msn_div
 
 
 
 
 
   function php_NivelMensaje ( $mensaje, $class, $nivel )
 
   {
 
      global $aBIBLIO;
 
      if( $aBIBLIO['mensaje'] >= $nivel )
 
         php_msn_div ( $mensaje, $class );
 
   } // end php_NivelMensaje 
 
 
 
   function phpgb_exeQuery ( $query )
 
   {
 
      echo "<br> entro;\n";
 
      $resultado = mysql_query( $query ) or $code = mysql_error();
 
      if ( isset( $code ) ){
 
         echo "<br>Query Error: ". $query ."<br>";
 
         echo "(". mysql_errno() ." ". $code .")";
 
         return ( false );
 
      }
 
      echo "<br> \$resultado = (". $resultado .")\n";
 
      return ( $resultado );
 
   } /* end php_exeQuery */
 
 
 
   $consulta = "INSERT+INTO+153_archivo.tar_nac+VALUES+%28+%2700%  27%2C%27%27%2C%27000%27%2C%27%27%2C%272008-06-18%27%2C%279999-12-31%27%2C%27%27%2C%27A%27%2C%27%27%2C%27%27%2C%27%2  7%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%  27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27%2C%27%27  +%29%3B";
 
   $consulta = $_REQUEST['write'];
 
 
 
   $ejecutar = urldecode( $consulta  );
 
   echo "<br>REQUEST="; print_r($_REQUEST); echo "\n";
 
   echo "<br>\n";
 
   echo "<br>ejecutar="; print_r( $ejecutar ); echo ";\n";
 
   echo "<br>\n";
 
 
 
   unset( $code );
 
 
 
   //$resultado = mysql_query( $ejecutar, $db ) or $code = mysql_error();
 
   //if ( isset( $code ) )
 
   $code = phpgb_exeQuery ( $ejecutar );
 
   if ( !$code )
 
      php_NivelMensaje( "No Se ejecuto la consulta :".$code.".", "notice", 0 );
 
   else {
 
      php_NivelMensaje( "Se realizo correctamente la tarea solicitada.", "notice",0 );
 
      php_NivelMensaje( " filas afectadas = ".mysql_affected_rows(), "notice",0 );
 
   }
 
 
 
   unset( $code, $ejecutar );
 
 
 
   //exit;
 
//}
 
?>
 
 
 
Inicial mente parto con el html pincho continuar y veo la base de dato borro el registros vía phpMyAdmin y después pincho atrás en la ventana use y repito la acción por lo menos 10 veces y se duplica 2 de 10 veces… la tabla tiene la siguiente estructura :
 
 
 
-- 
 
-- Estructura de tabla para la tabla `tar_nac`
 
-- 
 
 
 
CREATE TABLE `tar_nac` (
 
  `pagina` varchar(2) NOT NULL,
 
  `filler1` char(1) NOT NULL,
 
  `referencia` varchar(3) NOT NULL,
 
  `filler2` char(1) NOT NULL,
 
  `fdesde` date NOT NULL default '2006-01-01',
 
  `fhasta` date NOT NULL default '9999-12-31',
 
  `filler3` char(1) NOT NULL,
 
  `tipoval` char(1) NOT NULL default 'A',
 
  `filler4` char(1) NOT NULL,
 
  `tar_h_eco` varchar(10) NOT NULL,
 
  `filler5` char(1) NOT NULL,
 
  `car_h_eco` varchar(10) NOT NULL,
 
  `filler6` char(1) NOT NULL,
 
  `tar_h_nor` varchar(10) NOT NULL,
 
  `filler7` char(1) NOT NULL,
 
  `car_h_nor` varchar(10) NOT NULL,
 
  `filler8` char(1) NOT NULL,
 
  `tar_h_sec` varchar(10) NOT NULL,
 
  `filler9` char(1) NOT NULL,
 
  `car_h_sec` varchar(10) NOT NULL,
 
  `filler10` char(1) NOT NULL,
 
  `movil` enum('','M') NOT NULL
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
   
 
 Problema se crea dos registros con el insert.
 Problema se crea dos registros con el insert. 

