Foros del Web » Programando para Internet » PHP »

evitar la insercion de datos al recargar las paginas

Estas en el tema de evitar la insercion de datos al recargar las paginas en el foro de PHP en Foros del Web. hola todos tenemos una manera diferente de programar, pues yo utilizo dos manera a la hora de insertar datos en una bd, la primera con ...
  #1 (permalink)  
Antiguo 16/05/2013, 14:28
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Exclamación evitar la insercion de datos al recargar las paginas

hola

todos tenemos una manera diferente de programar, pues yo utilizo dos manera a la hora de insertar datos en una bd, la primera con jquery:

pro ejemplo cuando tengo un formulario y al dar clic en el boton guardar hago el llamado de la pagina que inserta los datos por ajax y asi no salto a otra pagina.

y la segunda manera:

cuando hago le salto de pagina ( la manera convencional ) lo cual es necesario cuando por ejemplo, debes de guardar un archivo físico en el servidor.

le problema de esta segunda manera es que si por alguna cosa al usuario se le da por recargar la pagina después de que guardo los datos, pues esta volverá hacer la inserción de los datos, pues se esta recargando.

mi pregunta es como podria evitarse esto cuando toca hacer de manera obligatoria el salto de pagina en una inserción, ya que por ajax esto se evita.

alguna sugerencia.

Gracias.
  #2 (permalink)  
Antiguo 16/05/2013, 15:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: evitar la insercion de datos al recargar las paginas

para eso siempre redireccionamos (header location), de ésa forma se evita ése inconveniente
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 16/05/2013, 15:47
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Respuesta: evitar la insercion de datos al recargar las paginas

al hacer la inserción de datos en la pagina que tiene el action del form, se redirecciona con header location hacia otra pagina ?

eso has querido decir... ?

sino es así, por favor me podrías explicar mejor, gracias
  #4 (permalink)  
Antiguo 16/05/2013, 20:20
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: evitar la insercion de datos al recargar las paginas

una solucion sin tener que redireccionar es la siguiente

Pagina de registro
Cita:

<?php

/* debes crear una variable de session y le asignas un valor, en este caso 1*/
$verifica = 1;
$_SESSION['verifica'] = $verifica;

Tu formulario


?>

pagina de procesos

Cita:

/*** aqui comprubas que la variable de session sea igual a 1, si es asi, es por que se ha enviado por primera vez
if ($verifica == 1) {

/**
* ****************************
* ****************************
* se borra variable de control, con el fin
* de si recargan la pagina la variable no existe y no
* realiza el doble registro

* ****************************
* ****************************
*/
unset($_SESSION['verifica']);






$consulta= $formula->query("tu consulta");
if (($consulta->num_rows) <= 0) {

registrar en la base de datos.....


require_once '../vista/MostrarResultados.php';
} else {

echo('<script>alert("Articulo duplicado, no es posible su registro ")</script>');
/*
* existe duplicado muestra los ultimos datos modificados
*/


}
}// fin valida actualizacion de pagina
else {
echo("<script>alert('Usted ha Actualizado la pagina, se mostraran los datos del ultimo articulo registrado')</script>");


}// fin validacion actualizacion de pagina
?>

  #5 (permalink)  
Antiguo 17/05/2013, 08:23
Avatar de kakashi20  
Fecha de Ingreso: septiembre-2009
Mensajes: 616
Antigüedad: 14 años, 6 meses
Puntos: 15
Respuesta: evitar la insercion de datos al recargar las paginas

gracias me ha servido mucho..!!
  #6 (permalink)  
Antiguo 17/05/2013, 08:29
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: evitar la insercion de datos al recargar las paginas

¿Quién dice que no se puede subir un fichero físico al servidor con AJAX?
  #7 (permalink)  
Antiguo 17/05/2013, 09:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: evitar la insercion de datos al recargar las paginas

Cita:
Iniciado por pr0 Ver Mensaje
¿Quién dice que no se puede subir un fichero físico al servidor con AJAX?
depende de la versión del XHR, la primera no soporta FileApi por lo tanto no se podía


y sí, la técnica tradicional es hacer un redirect, de esa forma se evita que al recargar se reenvié el form, porque es una petición nueva.

y el usar sesiones es básicamente la forma más simple (por así decirlo) de implementar protección CSRF, es efectiva más no eficiente
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 17/05/2013, 10:08
 
Fecha de Ingreso: mayo-2013
Ubicación: Estado de Mexico
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: evitar la insercion de datos al recargar las paginas

Pues a mi no me funciona el header Location, tengo ese problema.
Mi formulario está en HTML <form action="action.php" method="post">
<input type="submit" name="enviar">

en el PHP tengo este código y no regresa, se queda en en action.php

$result = mysql_query($query);
if (! $result){
/*echo 'La consulta SQL contiene errores.'.mysql_error();*/
exit;
}else {
header("Location: www.mipagina.com/mihtml.html");
exit;

};


Pero nunca regresa, se queda ahí en el action.php
Que puede ser ??

Alguien puede ayudarme ??
Además necesito limpiar los datos en el HTML.
  #9 (permalink)  
Antiguo 17/05/2013, 10:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: evitar la insercion de datos al recargar las paginas

¿no te sale algún error?: recuerda que para usar header no puedes haber realizado ningún volcado de datos al stdout, como un echo por ejemplo, incluso el mismo DOCTYPE, por lo cual debes asegurar eso
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: formulario
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 08:31.