Foros del Web » Programando para Internet » PHP »

duda Envio a mysql desde la misma pagina

Estas en el tema de duda Envio a mysql desde la misma pagina en el foro de PHP en Foros del Web. Hola que tal tengo una duda... saben que he hecho un formulario con mis imput. y la pagina de envio de los datos al mysql ...
  #1 (permalink)  
Antiguo 30/10/2012, 23:20
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
duda Envio a mysql desde la misma pagina

Hola que tal tengo una duda... saben que he hecho un formulario con mis imput. y la pagina de envio de los datos al mysql estan en la misma pagina.. el form tiene en action... la misma pagina... el envia los datos y todo bien... pero cuando yo envio. y recargo la pagina (f5)... el mismo dato se vuelve a enviar aun cuando le he puesto la condicion de que solo cuando presione el boton?

como hago para que una vez enviado los datos. yo presione f5 y no se vuelva enviar?

pense que la condicion del boton serviria... porq es esto? ayudenme. le he puesto un ejemplo con solo un imput

lo he hecho en la misma pagina ya q quiero quedarme en la misma pagina una vez enviado...

Código:
<body>
	<?php
if (isset($_REQUEST['boton']))
  {
include ("conexion.php");
$conexion=conectarse_bd();

$nombre=$_POST["nombre"];

$insertar="insert into supervisor values('$nombre')";
$enviar=mysql_query($insertar);

mysql_close($conexion);
}

?>

	
	<div id="principal">
		
	<form id="fo3" name="fo3"  action="copia.php" method="POST" autocomplete="off" >
	
	<table class="borde" id="tablaprincipal" cellspacing="0" cellpadding="0" style="width:100%;margin:0px;">
	

	<tr>
    <td class="sombra1"> Nombre y Apellido</td>
    <td class="sombra2"> <input type="text" name="nombre" size="28"></td>
 
	
	<tr>
	<td colspan="2" class="tablahistory">
	
	<input class="boton" type="submit" name="boton" value="Registrar"/>
	
	</td>
	</tr>

	</table>
	
	</form>
	
	</div>
	

</body>
  #2 (permalink)  
Antiguo 31/10/2012, 00:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: duda Envio a mysql desde la misma pagina

Cuando procesas un formulario se reciben todos los campos, incluyendo botones y, cuando recargas la página, todo se vuelve a enviar, por lo que la opción del botón no es efectiva.

Lo que puedes hacer es redireccionar a otra página, ya sea usando header() con estatus 301 (movido permanente) o con una etiqueta meta refresh.

Después de guardar la información correctamente:

Código PHP:
Ver original
  1. // Ejemplo con header()
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header("Location: otra-pagina.php");
  4.  
  5. // Ejemplo con meta refresh
  6. <html>
  7. <head>
  8.     <meta http-equiv="refresh" content="5;URL='otra-pagina.php'">
  9. </head>
  10. <body>
  11.     <p>Tus datos fueron guardados correctamente, en breve serás redirigido a la siguiente página.</p>
  12. </body>
  13. </html>

Con header, la redirección es inmediata, mientras que con meta refresh se muestra el mensaje y después del tiempo especificado (5 segundos en este ejemplo) hará la redirección; en ambos casos "la página intermedia" (donde procesaste el formulario) no queda en el historial del navegador, con lo que evitarás que se dupliquen los datos.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 31/10/2012, 06:59
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: duda Envio a mysql desde la misma pagina

En vez de Request usa Post, quedaria así:

if (isset($_POST['boton']))
  #4 (permalink)  
Antiguo 05/11/2012, 14:27
 
Fecha de Ingreso: octubre-2012
Mensajes: 14
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: duda Envio a mysql desde la misma pagina

Cita:
Iniciado por Triby Ver Mensaje
Cuando procesas un formulario se reciben todos los campos, incluyendo botones y, cuando recargas la página, todo se vuelve a enviar, por lo que la opción del botón no es efectiva.

Lo que puedes hacer es redireccionar a otra página, ya sea usando header() con estatus 301 (movido permanente) o con una etiqueta meta refresh.

Después de guardar la información correctamente:

Código PHP:
Ver original
  1. // Ejemplo con header()
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header("Location: otra-pagina.php");
  4.  
  5. // Ejemplo con meta refresh
  6. <html>
  7. <head>
  8.     <meta http-equiv="refresh" content="5;URL='otra-pagina.php'">
  9. </head>
  10. <body>
  11.     <p>Tus datos fueron guardados correctamente, en breve serás redirigido a la siguiente página.</p>
  12. </body>
  13. </html>

Con header, la redirección es inmediata, mientras que con meta refresh se muestra el mensaje y después del tiempo especificado (5 segundos en este ejemplo) hará la redirección; en ambos casos "la página intermedia" (donde procesaste el formulario) no queda en el historial del navegador, con lo que evitarás que se dupliquen los datos.

ME HA SERVIDO ESTA MUCHISIMAS GRACIAS POR DEDICARTE EL TIEMPO HE APRENDIDO COSAS NUEVAS GRACIAS A TI

Etiquetas: formulario, mysql, sql, tabla
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 02:09.