Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al recargar la pagina evitar que re inserte datos en la tabla

Estas en el tema de Al recargar la pagina evitar que re inserte datos en la tabla en el foro de PHP en Foros del Web. Hola Me encuentro con un formulario que inserta mediante PHP correctamente información en la tabla de SQL Este formulario tiene su querry dentro de el ...
  #1 (permalink)  
Antiguo 23/08/2016, 13:55
Avatar de barryallen878  
Fecha de Ingreso: enero-2015
Mensajes: 24
Antigüedad: 9 años, 3 meses
Puntos: 0
Al recargar la pagina evitar que re inserte datos en la tabla

Hola

Me encuentro con un formulario que inserta mediante PHP correctamente información en la tabla de SQL

Este formulario tiene su querry dentro de el mismo documento y al mandar informacion agrega los datos pero teniendo los campos vacios al recargar la pagina inserta el ultimo registro otra ves :/



Código PHP:
<form name="formulario" method="post" action="index.php">

<label>nombre
<input type="text" name="nombre" required>
</label>
<label>e mail
<input type="text" name="mail" required>
</label>
<input value="Calcular" type="submit" name="formulario" />

</form>

<?php
if (isset($_POST["formulario"])){
        if (empty(
$_POST['nombre'])||empty($_POST['mail'])){
        echo 
"debes llenar todos los campos ";
        } else {
$sql="INSERT INTO `persons`(`nombre`, `mail`)
VALUES
('$_POST[nombre]','$_POST[mail]')"
;
if (!
mysql_query($sql,$con))
  {
  die(
'Error: ' mysql_error());
  }
echo 
"Datos agregados";}}
mysql_close($con)
?>
  #2 (permalink)  
Antiguo 23/08/2016, 18:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Al recargar la pagina evitar que re inserte datos en la tabla

obvio que los inserta otra vez por que al recargar el formulario se reenvian los datos por post.

primero pone arriba el php o lo mejor seria en un controlador

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST["formulario"])){
  3.         if (empty($_POST['nombre'])||empty($_POST['mail'])){
  4.         echo "debes llenar todos los campos ";
  5.         } else {
  6. $sql="INSERT INTO `persons`(`nombre`, `mail`)
  7. VALUES
  8. ('$_POST[nombre]','$_POST[mail]')";
  9. if (!mysql_query($sql,$con))
  10.   {
  11.   die('Error: ' . mysql_error());
  12.   }
  13. //echo "Datos agregados";
  14.  
  15. header("Location: /index.php"); // aca direcciona a una pagina con un mensaje, puede ser la misma
  16.  
  17. }
  18. }
  19. ?>

Código HTML:
Ver original
  1. <form name="formulario" method="post" action="index.php">
  2.  
  3. <label>nombre
  4. <input type="text" name="nombre" required>
  5. </label>
  6. <label>e mail
  7. <input type="text" name="mail" required>
  8. </label>
  9. <input value="Calcular" type="submit" name="formulario" />
  10.  
  11. </form>

Etiquetas: formulario, mysql, registro, 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 14:02.