Foros del Web » Programando para Internet » PHP »

Como podre hacerle?

Estas en el tema de Como podre hacerle? en el foro de PHP en Foros del Web. Tengo un formulario con el cual doy de alta usuarios y me despliega un msj de que ya fue registrado pero si lo guardo y ...
  #1 (permalink)  
Antiguo 14/09/2010, 13:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Como podre hacerle?

Tengo un formulario con el cual doy de alta usuarios y me despliega un msj de que ya fue registrado pero si lo guardo y doy f5 me vuelve a mostrar el mismo msj como le puedo indicar que solo cuando apriete el boton enviar haga lo que le pido.


Código PHP:
Ver original
  1. <?php
  2.   $link = mysql_connect("localhost","localboy","localpass");
  3.     mysql_select_db("users",$link);  
  4.  
  5.   $nombre=$_POST['nombre'];
  6.   $apaterno=$_POST['apaterno'];
  7.   $amaterno=$_POST['amaterno'];
  8.   $correo=$_POST['correo'];
  9.   $usuario=$_POST['usuario'];
  10.   $password=$_POST['password'];
  11.  
  12.  
  13.  
  14.   $query = mysql_query("INSERT INTO usuarios(nombre, apaterno, amaterno, correo, usuario, password) VALUES ('$nombre', '$apaterno', '$amaterno', '$correo', '$usuario', '$password')");
  15.    
  16.     echo "<script type='text/javascript'> alert('Usuario registrado satisfactoriamente') </script>";
  17.  
  18.   ?>
  #2 (permalink)  
Antiguo 14/09/2010, 14:00
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Como podre hacerle?

Hola
pues porque cuando das f5, el formulario vuelve a ser enviado....
lo que necesitas es redireccionar una vez se inserten los datos
a una página cualquiera (index.php por ej), para que sea necesario
volver a cargar la página donde estabas insertando los datos para
que a su vez cuando presionen "Guardar" o "Enviar" haga lo que debe hacer
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 14/09/2010, 14:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 2
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Como podre hacerle?

Despues de hacer un insert me arroja el echo y me voy a otra parte de mi pagina y regreso a esa misma de altas y me vuelve a arrojar el echo como si hubiera hecho un insert eso es lo que precisamente quiero evitar.
  #4 (permalink)  
Antiguo 14/09/2010, 15:58
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Como podre hacerle?

Cita:
Iniciado por wilmer2010 Ver Mensaje
Despues de hacer un insert me arroja el echo y me voy a otra parte de mi pagina y regreso a esa misma de altas y me vuelve a arrojar el echo como si hubiera hecho un insert eso es lo que precisamente quiero evitar.
en ese caso, has un if antes del alert (if de php) donde se pregunte
que si las variables recibidas estan vacias, no muestre ese alert
prueba y comentas
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 14/09/2010, 16:56
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Como podre hacerle?

Si redireccionas a la misma página no se si todos pero al menos la mayoría de los navegadores reenvia la petición. No se porqué, pero me pasaba a mi con unos avatares que hice.

También recuerda que si usas un botón tipo así para enviar:
Código HTML:
Ver original
  1. <input type="submit" name="enviando" value="Enviar Datos" />

recibirás en PHP una entrada con el nombre: $_POST['enviando'];

PERO eso no sirve en tu caso, al recargar reenviaría también todo, el caso es que envia exactamente la misma petición.

Lo mejor es usar esto una vez grabes los datos:
Código PHP:
Ver original
  1. header('Location: /pagina-a-redireccionar.php');

Etiquetas: Ninguno
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:50.