Foros del Web » Programando para Internet » PHP »

Como hacer para no enviar dos veces la informacion a mi BD

Estas en el tema de Como hacer para no enviar dos veces la informacion a mi BD en el foro de PHP en Foros del Web. Hola chikos porque me ingresa dos veces mi informacion a mi BD tengo el sgte script en el php : Código PHP: <script> function validar_ingreso(form){ var ac1 = form3.acceso1.value; ...
  #1 (permalink)  
Antiguo 12/01/2006, 08:24
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
Como hacer para no enviar dos veces la informacion a mi BD

Hola chikos porque me ingresa dos veces mi informacion a mi BD tengo el sgte script en el php :
Código PHP:
<script>
function validar_ingreso(form){
var ac1 = form3.acceso1.value;
var ac2 = form3.acceso2.value;
if(ac1=="" ){
alert('El Remitente no Existe Ingrese Nuevamente el Nombre y Pressione Enter');
return false;
}
else if(ac2==""){
alert('El Destinatario no Existe ingrese Nuevamente el Nombre y Pressione Enter');
return false;
}
else{
 form3.action="prg_insert_giros.php";
 form3.submit();}
 return false;
}
</script>

<html>
<body>
...
 <form name="form3" method="post">
  <input type="hidden" name="txtpais" value="<? echo $Xpais;?>">
  <input type="hidden" name="nombre1" value="<? echo $nombre1;?>">
  <input type="hidden" name="apellido1" value="<? echo $apellido1;?>">
  <input type="hidden" name="nombre2" value="<? echo $nombre2;?>">
  <input type="hidden" name="apellido3" value="<? echo $apellido3;?>">
  <input type="hidden" name="acceso1" value="<? echo $acceso1;?>">
  <input type="hidden" name="acceso2" value="<? echo $acceso2;?>">
  <input type="hidden" name="estado" value="enviado">

<input type="submit" name="enviar" value="Enviar" onClick="validar_ingreso(this.form);">
</body>
</html>

Última edición por Cluster; 12/01/2006 a las 09:32
  #2 (permalink)  
Antiguo 12/01/2006, 08:29
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
El script que realiza el ingreso de los datos en la base es "prg_insert_giros.php", cuyo código no mostras. Publicalo si querés y vemos si te podemos ayudar.
Saludos.
__________________
¿Se me entiende la letra?
  #3 (permalink)  
Antiguo 12/01/2006, 08:35
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
este es mi codigo que creo que no tiene nada que ver se que el error esta en mi script del java please help me ::::SSSSS
Código PHP:
<?php
    
include('conexionmacro.php');
    
$link=Conectarse();
    
    function 
genera_aleatorio($longitud,$tipo="alfanumerico"){ 
        if (
$tipo=="numerico"){ 
            
$exp_reg="[^0-9]"
        } 
     
        return 
substr(eregi_replace($exp_reg""md5(rand())) . 
           
eregi_replace($exp_reg""md5(rand())) . 
           
eregi_replace($exp_reg""md5(rand())), 
           
0$longitud); 
    } 
     do{
        
$Xgiro genera_aleatorio(4,"numerico");
        
$aux $Xgiro;
        
$Rsngiro1 mysql_query("select ngiro from giros",$link);
    }while(
mysql_fetch_array($Rsngiro1)==$aux);

$giro $aux;
$RScountcliente mysql_query("select id_cliente from clientes where id_cliente='$acceso2'",$link);

$fila mysql_fetch_array($RScountcliente);
mysql_free_result($RScountcliente);

$Xidcli $fila[0];
$cambio = ($tcambio $monto_envio);

$RSinsertcliente mysql_query("insert into giros values ('$Xidcli','$acceso1','$acceso2','$monto_envio','$cuenta','$observacion','$fecha','$giro','$tipom','$estado','','$cambio')",$link);

mysql_close($link);

?>
<script>

function Cargar(){
var pais = document.frm_datos.txtpais.value;
var ng = document.frm_datos.giro.value; 
alert('Nº de Giro: '+ ng );
document.frm_datos.action="giros_encomiendas.php";
document.frm_datos.submit();
window.open("imprimir.php?giro="+ng+"&txtpais="+pais,'ventana1','height=700,width=550,resizable=yes,scrollbars=yes');
    }
</script>
<body onLoad="Cargar()">
<form action="giros_encomiendas.php" method="post" name="frm_datos">
<input type="hidden" name="txtpais" value="<? echo $txtpais;?>">
<input type="hidden" name="giro" value="<? echo $giro;?>">
</form>
</body>
</html>
mas bien si me podrian tambien ayudar en este codigo sobre los numeros aleatorios porqu aun no resuelvo ingresar un numero que no se repita ahy tambien tengo un error pero no se como solucionarlo pero lo primero sobre mi primera preg.
Graciasssssssssss

Última edición por Cluster; 12/01/2006 a las 09:32
  #4 (permalink)  
Antiguo 12/01/2006, 09:02
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
nadie nadie :S :(
  #5 (permalink)  
Antiguo 12/01/2006, 09:19
Avatar de jair20x  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid - España
Mensajes: 532
Antigüedad: 18 años, 5 meses
Puntos: 1
Cita:
Iniciado por lily_cv
nadie nadie :S :(
aca puedes encontra informacion que te pueda servir
http://www.webtaller.com/manual-php/manual_php.php
Saludos lilicienta
  #6 (permalink)  
Antiguo 12/01/2006, 09:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No entiendo para que tienes una página HTML con un formulario HTML con campos hidden donde tomas los valores del formulario y compones un link donde redireccionas (a un script PHP) pasandole los valores de esos campos del formulario.

El código PHP se ejecuta al llamarlo simplemente. Luego tienes una función javascript que la llamas en el "onLoad" de esa página que redirecciona (abre una ventana) a un script PHP concreto. Por favor para no liarnos y saber a que hace referencia todoooooooos esos redireccionamientos o aperturas de ventas que haces, pon NOMBRE a los códigos que indiques (los de los scripts que pertenecen) y no pongas código suelto de partes de tus scripts y si lo haces dejalo bien claro .. por qué al final se pierde el contexto de lo que publicas (código) y en consecuencia es imposible hacerse una idea por donde vas "pegando saltos" y así intentar deducir donde se origina una doble llamada a uno de tus scripts o similar.

Tampoco comprendo (o es discutible) para que tu función javascript del primer código validas y si todo OK colocas el "action" del formulario donde luego haces el submit del formulario .. ¿No sería más natural hacer que tu función de javascript simplemente valide y devuelva un "boolean" (true/false) para que continue el envio del formulario o no (onClick="return validar_ingreso(this.form);"> ).

Realmente veo muchas "piruetas" javascript para hacer muchas cosas que tal vez puedas hacer de forma más natural sin enrredarte tanto.

Un saludo,
  #7 (permalink)  
Antiguo 12/01/2006, 09:47
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
cluster mi preg era sobre la primera parte lo seguno ignoralo lo escribi pork jorgito lo pidio y en el primer script no esta completo solo me interesa la partedel javascript kiero que vean si esta correcto nada mas
  #8 (permalink)  
Antiguo 12/01/2006, 09:48
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
y Gracias Jaircito lo revisare ;)
  #9 (permalink)  
Antiguo 12/01/2006, 10:02
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 18 años, 3 meses
Puntos: 1
Creo que, como dijo Cluster, el error está en el botón Enviar. Como es de tipo "submit", envia el formulario, pero también llamas a la función validar al presionarlo, y dicha función también envía el formulario, por lo tanto el formulario se envia dos veces.
Saludos.
__________________
¿Se me entiende la letra?
  #10 (permalink)  
Antiguo 12/01/2006, 10:04
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
ah ya, graciassssssssssssssss
  #11 (permalink)  
Antiguo 12/01/2006, 10:07
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
lo que pasa clustes es que escribes tanto que a veces no se te entiende graciassssssssssss
  #12 (permalink)  
Antiguo 12/01/2006, 11:13
Avatar de jair20x  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid - España
Mensajes: 532
Antigüedad: 18 años, 5 meses
Puntos: 1
Sonrisa

Cita:
Iniciado por lily_cv
lo que pasa clustes es que escribes tanto que a veces no se te entiende graciassssssssssss
Cluster solo quiere ayudaaaaaaaaaaaaarrrrrr
  #13 (permalink)  
Antiguo 12/01/2006, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No soy de la filosofía de dar respuetas tipo "quita esto pon aquello" .. pretendo siempre argumentar lo que explico y de paso si hay más de "fondo" que aportar (teoría) la intento dár para que NO te pase lo mismo otra vez con un caso similar.

Por lo demás . .si dices y reiteras que el problema lo tienes con "javascript" .. este no es el foro de "Javascript" sino de PHP. Así que mejor consulta en los foros de Javascript.

Creo que tu problema va por:
Cita:
Tampoco comprendo (o es discutible) para que tu función javascript del primer código validas y si todo OK colocas el "action" del formulario donde luego haces el submit del formulario .. ¿No sería más natural hacer que tu función de javascript simplemente valide y devuelva un "boolean" (true/false) para que continue el envio del formulario o no (onClick="return validar_ingreso(this.form);"> ).
Pero vamos .. todo eso mejor que lo confirmes en el Foro de Javascript

Un saludo,
  #14 (permalink)  
Antiguo 12/01/2006, 11:38
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 18 años, 4 meses
Puntos: 0
ok cluster pero no te enojes ps te mando una cosquillita ;)
  #15 (permalink)  
Antiguo 12/01/2006, 11:40
Avatar de jair20x  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid - España
Mensajes: 532
Antigüedad: 18 años, 5 meses
Puntos: 1
Cita:
Iniciado por lily_cv
ok cluster pero no te enojes ps te mando una cosquillita ;)
jajajjajaja
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 16:24.