Foros del Web » Programando para Internet » PHP »

Botón Actualizar --- que no se ejecute acción con BD.!!!

Estas en el tema de Botón Actualizar --- que no se ejecute acción con BD.!!! en el foro de PHP en Foros del Web. Hola a todos!! Tengo un grave problema que no se como solucionar, les cuento: Tengo una página a través de la cual se ingresan datos ...
  #1 (permalink)  
Antiguo 09/04/2004, 15:41
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Botón Actualizar --- que no se ejecute acción con BD.!!!

Hola a todos!!


Tengo un grave problema que no se como solucionar, les cuento:


Tengo una página a través de la cual se ingresan datos los cuales luego de click en el botón de enviar inserta los datos en la BD. ----- ok. El problema es que si yo hago click en el botón actualizar de la barra VUELVE a INSERTAR los mismos datos en la BD. Por tanto mi pregunta es ¿cómo evito que el hacer click en el botón Actualizar inserte datos en la BD??


Por favor espero que me ayuden, es muy importante.

PD. No puedo controlarlo con la clave, porque es un campo autoincrementable.


Ayuda por favor.


Saludos.

Yuki27
  #2 (permalink)  
Antiguo 09/04/2004, 17:26
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 5 meses
Puntos: 0
Lo que hago yo es redireccionar luego de la insercion por medio de header('Location: url') a una pagina que diga "ingresado" o algo por el estilo. Si actualizan la pagina se actualizara esta ultima.
  #3 (permalink)  
Antiguo 09/04/2004, 17:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias, pero...

Hola!!!


gracias por tú respuesta, pero cómo se hace??, disculpa que pregunte pero la verdad no se usar lo que me señalas.


Respóndanme por favor.
  #4 (permalink)  
Antiguo 09/04/2004, 18:33
Avatar de Game[DxS]  
Fecha de Ingreso: noviembre-2003
Ubicación: Concepción Chile
Mensajes: 100
Antigüedad: 14 años
Puntos: 0
algo asi

Código PHP:
<?obs_start();


header ("Location: ingreso_ok.php"); // esto lo pones despues
// de ke insertes los datos en la bd, asi te envia a  la pagina 
//ke indikes, en este caso ingreso_ok.php

obs_end(); //--> no se si esta correcto ke alguien confirme  xD
?>
  #5 (permalink)  
Antiguo 09/04/2004, 20:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
¿?

Hay que usar alguna definición especial o algo, pues lo puse como fue señalado y me aparecio el mensaje:


Call to undefined function: obs_start()


Entonces qué debo hacer para que me funcione????


Saludos.
  #6 (permalink)  
Antiguo 09/04/2004, 21:00
Avatar de Game[DxS]  
Fecha de Ingreso: noviembre-2003
Ubicación: Concepción Chile
Mensajes: 100
Antigüedad: 14 años
Puntos: 0
Código PHP:
ob_start(); // esto va en la 1era linea de la pag

header ("Location: ingreso_ok.php"); 

ob_end_flush(); // en la ultima linea 

asi es jeje, ahora lo recorde, espero te sirva
  #7 (permalink)  
Antiguo 09/04/2004, 21:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Disculpa Pero...

Game[DxS]

Disculpa pero no se porque no me funciona, lo pongo tal cual me señalas, incluso ni siquiera me linkea al archivo del header!!!!



Por qué no me resulta!!! me da mucha bronca, pues se que se puede hacer y ya no hayo cómo!!!!!!!


por favor ayudita !!!!!!
  #8 (permalink)  
Antiguo 10/04/2004, 07:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Cómo lo soluciono...

Hola nuevamente!!

Utilicé lo señalado y ahora el problema es que cuando cargo la página me redirecciona automáticamente, es decir pongo en la url http://xx.pagina.php y me carga ingresook.php inmediatamente sin pasar por la página inicial.

mi código de pagina.php es el siguiente:

<?
ob_start();
?>

<html>
<head></head>
<body>
<form>

código html

<?
código php
?>

más html

<?

acciones en php ...

insert en BD

y quiero que despúes de que inserte me linkee a ingresook.php entonces pongo

sql=insert ....

header ("Location: ingresook.php");
ob_end_flush();

?>
</body>
</form>
</html>

Eso es todo, pero cuando le digo pagina.php me linkea a ingresook.php sin siquiera pasar por pagina.php por tanto no hace las inserciones en la BD.


Espero me puedan ayudar, sinceramente he buscado mucha información y no he dado con la solución. Es muy importante.

Muchas gracias de ante mano.

Yuki27
  #9 (permalink)  
Antiguo 10/04/2004, 09:09
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,
Cita:
Eso es todo, pero cuando le digo pagina.php me linkea a ingresook.php sin siquiera pasar por pagina.php por tanto no hace las inserciones en la BD.
Tal como tienes ese codigo, si te deberia estar ingresando.

La cuestion es que con el header) nunca se va a visualizar esa pagina, pero si se ejecuta el PHP. Ese es el secreto. Como no se visualiza, no se queda en el navegador y no se recarga.

Es mas, como no se va a ver HTML, tendrias que quitar todo el HTML y quitar los ob_start(), ya que no son necesarios.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 10/04/2004, 18:53
Avatar de Game[DxS]  
Fecha de Ingreso: noviembre-2003
Ubicación: Concepción Chile
Mensajes: 100
Antigüedad: 14 años
Puntos: 0
si kitas el ob_start sale un error, algo de "input header", asi ke es necesario... por lo demas creo ke ya esta todo dicho
  #11 (permalink)  
Antiguo 11/04/2004, 09:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Si quitas todo el HTML y salida, no necesitas el ob_start(). Y como con esa redireccion no se muestra nada, el HTML y la salida no es necesaria. Asi que ob_start() no es necesario si se hace bien el codigo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 11/04/2004, 12:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 134
Antigüedad: 14 años, 2 meses
Puntos: 0
Gracias

Gracias a todos por su ayuda.


Me sirvió muchísimo.



Saludos.
yuki27
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 19:35.