Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] retorno a formulario o mensaje de envio???

Estas en el tema de retorno a formulario o mensaje de envio??? en el foro de PHP en Foros del Web. buenas gente.... espero que vaya todo bien... por lo menos mejor que a mi . tengo el siguiente problema... estoy cargando datos a la BD ...
  #1 (permalink)  
Antiguo 02/10/2014, 22:16
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta retorno a formulario o mensaje de envio???

buenas gente.... espero que vaya todo bien... por lo menos mejor que a mi .

tengo el siguiente problema... estoy cargando datos a la BD por medio de un formulario pero no se me ocurre, mejor dicho, no me doy cuenta como hacer para que al ingresar el dato me devuelva el mensaje de "datos almacenados" ya que me devuelve al formulario(cosa que debe pasar si se presiona el boton de enviar datos con el formulario vacio)

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <meta charset="UTF-8">
  4.     <title>Recetario Virtual</title>
  5.     <link rel="stylesheet" href="../estilos.css">
  6. </head>
  7.     <header>
  8.     </header>
  9.     <nav>
  10.         <ul>
  11.             <li><a href="index.html">Inicio</a></li>
  12.             <li><a href="nosotros.html">Nosotros</a></li>
  13.             <li><a href="contacto.html">Contacto</a></li>
  14.             <li><a href="recetario.html">Recetario</a></li>
  15.         </ul>
  16.         <aside>
  17.             <img src="" alt=""><a href="../index.html">Salir del sistema</a></img>
  18.         </aside>
  19.     </nav>
  20.     <section>
  21.         <nav>
  22.             <a href="acceso.html">Buscar Recetas</a>
  23.             <a href="showall.html">Todas las Recetas</a>
  24.             <a href="addreg.html">Agregar Receta</a>
  25.             <a href="delreg.html">Borrar Receta</a>
  26.             <a href="modreg.html">Modificar Recetas</a>
  27.         </nav>
  28.             <hgroup>
  29.                 <h2>Recetario Virtual</h2>
  30.                 <h4>¡Almacene sus recetas para no olvidarlas!.</h4>
  31.             </hgroup>
  32.         <form method="post" action="addreg.php">
  33.             <input type="text" name="nombre" placeholder="Nombre de la receta" ><br>
  34.             <input type="text" name="autor" placeholder="Autor"><br>
  35.             <input type="text" name="receta" placeholder="Escribe la Receta"><br>
  36.             <input type="submit" name="enviar" value="Aceptar informacion"><br>
  37.         </form>
continua debajo(seria linea 40)
Código PHP:
Ver original
  1. <?php    
  2.             if(isset($_POST["enviar"]))    {
  3.             $link = mysqli_connect("localhost", "root", "", "recetario");
  4.             $sql = "INSERT INTO recetas(nombre, autor, receta)";
  5.             $sql .= "VALUES('".$_POST["nombre"]."', '".$_POST["autor"]."', '".$_POST["receta"]."')";
  6.             $result = mysqli_query($link, $sql);
  7.             $msg =  "¡Gracias, hemos recibido tu receta!.\n";
  8.         ?>
continua debajo(seria linia 47)
Código HTML:
Ver original
  1.     <footer>
  2.         <article><a href="http://">Site Map.</a></article>
  3.         <article><a href="http://">All Rights Reserved.</a></article>
  4.         <article><a href="http://">Faq.</a></article>
  5.     </footer>
  6.     <?php
  7.    }
  8.    ?>
  9. </body>
  10. </html>


desde ya muchas gracias.

saludos desde mar del plata!
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #2 (permalink)  
Antiguo 03/10/2014, 06:41
Avatar de javier6_almansa  
Fecha de Ingreso: mayo-2014
Mensajes: 34
Antigüedad: 5 años, 6 meses
Puntos: 0
Respuesta: retorno a formulario o mensaje de envio???

Hola, ten en cuenta que de la forma en que lo has programado, una vez un usuario envía el formulario, si volviera a recargar la pagina, volvería a insertar en la base de datos, ya que seguiría existiendo la variable $_POST

Mi recomendación es que en el action del formulario pongas otra pagina, por ejemplo insertar_receta.php con el codigo:

Código PHP:

if(isset($_POST["enviar"]))    {

       
// ATENCIO, NO ESTABAS ESCAPANDO LOS CARACTERES DE LAS VARIABLES, ES UN GRAN RIESGO DE SEGURIDAD
       
       
$link mysqli_connect("localhost""root""""recetario");
       
$nombre mysqli_real_escape_string($link$_POST['nombre']);
       
$autormysqli_real_escape_string($link$_POST['autor']);
       
$recetamysqli_real_escape_string($link$_POST['receta']);
           
        
$sql "INSERT INTO recetas(nombre, autor, receta)";
        
$sql .= "VALUES('".$nombre."', '".$autor."', '".$receta."')";
        
$result mysqli_query($link$sql);
        
$msg =  "¡Gracias, hemos recibido tu receta!.\n";
        
        
// Una vez se han echo las operaciones rediriges a la web del formulario pasando como $_GET un msg
        
header("Location: recogida_datos.php?msg=".$msg);
     

De esta forma una pagina tendra el formulario y lo mandara los datos a otra pagina donde escribira en la base de datos y volvera a la web del formulario con un $_GET['msg']

Código PHP:
// Si esta la variable GET, significa que ha vuelto del formulario, con un mensaje. 
if(isset($_GET["msg"]))    {
       echo 
$_GET["msg"];


Etiquetas: formulario, html, mensaje, mysql, retorno, sql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:24.