Foros del Web » Programando para Internet » PHP »

Una BUENA para expertos

Estas en el tema de Una BUENA para expertos en el foro de PHP en Foros del Web. Tengo un grave problema. Tengo un formulario php que llama a otro para procesar las opciones seleccionadas, y este ultimo se procesa muchas veces, es ...
  #1 (permalink)  
Antiguo 15/01/2003, 02:31
 
Fecha de Ingreso: septiembre-2002
Mensajes: 8
Antigüedad: 21 años, 7 meses
Puntos: 0
Una BUENA para expertos

Tengo un grave problema.

Tengo un formulario php que llama a otro para procesar las opciones seleccionadas, y este ultimo se procesa muchas veces, es decir, se realiza la llamada 4, 5 o 6 veces.

No lo entiendo, ya que no se toco nada, los dos php están como antes y da igual las opciones que se seleccionen, ya que a veces lo hace con unas y a veces con otras.

Pense que fuera de sistema, pero el resto de formularios y todo el sistema en general funcionan de forma normal.

No se si ha aparecido un bug de repente (no lo creo), ya que tengo otro ordenador (COPIA EXACTA) con los mismos datos y funciona bien.

Alguien me puede ayudar u orientar.

Gracias
  #2 (permalink)  
Antiguo 15/01/2003, 02:46
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Estaría bien que copiaras algo de código, para ver si vemos algo extraño.

¿Seguro que no le das al submit varias veces porque va un poco lento?
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 15/01/2003, 03:56
 
Fecha de Ingreso: septiembre-2002
Mensajes: 8
Antigüedad: 21 años, 7 meses
Puntos: 0
Es un fichero de 440 lineas que aparte de codigo html tiene estas lineas que hagan referencia a php (no tiene refresco ni ningun link para que se vuelva a llamar):

function conecta_sql()
{
if (!($link=mysql_pconnect("localhost","root")))
{
echo mysql_errno()." ".mysql_error();
echo "\nfallo al conectar";
echo "\n".strerror($link);
exit();
}
if (!mysql_select_db("base_datos",$link))
{
echo "error en seleccion de base de datos";
exit();
}
return $link;
}

$link=conecta_sql();

set_time_limit(600);

$reg = date("d/m/Y H:i",time());
$reg .= "\t".getenv("QUERY_STRING")."\n";

$fichero = fopen("log.txt","a");
fputs($fichero,$reg);
fclose($fichero);

$fichero = fopen("actualizados.txt","w");
fputs($fichero,$bien2);
fclose($fichero);

$fichero = fopen("noactualizados.txt","w");
fputs($fichero,$noact2);
fclose($fichero);

$fichero = fopen("errores.txt","w");
fputs($fichero,$errores2);
fclose($fichero);

El resto, todo es html y llamadas a funciones de mysql
  #4 (permalink)  
Antiguo 15/01/2003, 04:20
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
Puntos: 5
prueba a hacer una conexion normal y no persistente y al acabar la fncion cierrala.
__________________
Usuario registrado de Linux #288725
  #5 (permalink)  
Antiguo 15/01/2003, 05:11
 
Fecha de Ingreso: septiembre-2002
Mensajes: 8
Antigüedad: 21 años, 7 meses
Puntos: 0
Buena idea, pero el problema es que me repite el script entero, y aunque la cierre al final, cuando inicia de nuevo el script la vuelve a abrir.

Ya no se que mirar.
  #6 (permalink)  
Antiguo 15/01/2003, 05:20
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Asegurate de que:

- No actualizas la página que ejecuta el script
- No haces más de un submit
- No tienes ningún bucle que se repite sin razón
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 15/01/2003, 05:29
 
Fecha de Ingreso: septiembre-2002
Mensajes: 8
Antigüedad: 21 años, 7 meses
Puntos: 0
Te aseguro que no hay mas submit porque tambien falla cuando llamo a php directamente con los parametros desde el navegador

El php no tiene ningun link ni ningun refresh (unicamente tiene la linea <meta HTTP-EQUIV="Expires" CONTENT="0">) que ya he quitado para descartarla.

El script no tiene ningun bucle, solo tiene "if"

Gracias por el interes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:35.