Foros del Web » Programando para Internet » PHP »

Error en formulario php

Estas en el tema de Error en formulario php en el foro de PHP en Foros del Web. Buenas tardes a todos. Necesito vuestra ayuda. Tengo este código: <body> <?php include ("../cafeteria_tonik_conexion.php"); if ($_GET['btn_entrar']) { $titulo = $_GET["titulo"]; $plato = $_GET["plato"]; $precio = ...
  #1 (permalink)  
Antiguo 06/06/2016, 12:24
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Error en formulario php

Buenas tardes a todos. Necesito vuestra ayuda. Tengo este código:
<body>
<?php
include ("../cafeteria_tonik_conexion.php");
if ($_GET['btn_entrar'])
{
$titulo = $_GET["titulo"];
$plato = $_GET["plato"];
$precio = $_GET["precio"];
echo $plato;
if ($plato == "")
{
echo "<script language='JavaScript'>
alert('Debes introducir un plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
if ($precio = "")
{
echo "<script language='JavaScript'>
alert('Debes introducir un precio para este plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
}
else
{
?>
<div id="apDiv1"></div>
<div id="apDiv2">
<form method="get" action="nuevo_plato.php">
<p>
<label for="titulo">Título del plato:</label>
<input name="titulo" type="text" id="titulo" size="40">
</p>
<p>
<label for="plato">Plato:</label>
</p>
<p>
<textarea name="plato" rows="4" cols="60"></textarea>
</p>
<p>
<label for="precio">Precio del plato:</label>
<input type="number" name="precio" id="precio" class="precio" step="any">
</p>
<p align="center">
<input name="btn_entrar" id="btn_entrar" type="submit" value="Guardar">
</p>
</form>
</div>
<div id="DivLogo">Cafetería Tonik Administración</div>
<?php
}
?>

</body>
En el cual, la primera linea que pone if ($_GET['btn_entar']) ya me tira un Undefinex index btn_entrar. ¿Me podéis ayudar?. Gracias
  #2 (permalink)  
Antiguo 06/06/2016, 12:33
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

Hola, la solucion es simple, debes usar isset para verificar si esta definida o no la variable:

Código PHP:
Ver original
  1. if (isset($_GET['btn_entrar']))

Saludos
  #3 (permalink)  
Antiguo 07/06/2016, 02:39
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Eso ya lo he hecho y no funciona. También quiero decirte que mando el formulario con los campos en blanco y los if de comprobación, tampoco los hace.
  #4 (permalink)  
Antiguo 07/06/2016, 08:39
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 5 meses
Puntos: 20
Respuesta: Error en formulario php

Hola amigo,
que error te arroja cuando agregas isset? Esa debería ser la solución para el error que mencionas
Checa tu 2da condicion, ya que estás igualando en vez de comparar
Saludos!
  #5 (permalink)  
Antiguo 07/06/2016, 10:10
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Ahora he puesto este código:
<body>

<div id="apDiv1"></div>
<div id="apDiv2">
<form method="post" action="nuevo_plato.php">
<p>
<label for="titulo">Título del plato:</label>
<input name="titulo" type="text" id="titulo">
</p>
<p>
<label for="plato">Plato:</label>
</p>
<p>
<textarea name="plato" rows="4" cols="60"></textarea>
</p>
<p>
<label for="precio">Precio del plato:</label>
<input type="number" name="precio" id="precio" class="precio" step="any">
</p>
<p align="center">
<input id="btn_entrar" type="submit" value="Guardar" name="btn_entrar">
</p>
</form>
</div>
<div id="DivLogo">Cafetería Tonik Administración</div>
</body>
<?php
include ("../cafeteria_tonik_conexion.php");
if(isset($_GET['btn_entrar']))
{
$titulo = $_GET['titulo'];
$plato = $_GET['plato'];
$precio = $_GET['precio'];
echo $plato;
if ($plato == "")
{
echo "<script language='JavaScript'>
alert('Debes introducir un plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
if ($precio = "")
{
echo "<script language='JavaScript'>
alert('Debes introducir un precio para este plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
}
?>
</html>
Y al darle al botón, dejando todos los campos vacíos, me tendría que decir que los campos están vacíos, pues no es así, se recarga la página y ya está. ¿Qué estoy haciendo mal? ¿Por qué no funciona? Gracias.
  #6 (permalink)  
Antiguo 07/06/2016, 10:50
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

pero es que tenes un enredo con el metodo de envio

pones $_GET por un lado y $_POST por otro , y tu formulario claramente esta con post.
son cosas que tienes que ver antes de hacer un formulario.

el php debería ser así :

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['btn_entrar']))
  3. {
  4. $titulo = $_POST['titulo'];
  5. $plato = $_POST['plato'];
  6. $precio = $_POST['precio'];
  7. echo $plato;
  8. if ($plato == "")
  9. {
  10. echo "<script language='JavaScript'>
  11. alert('Debes introducir un plato');
  12. document.location=('index.html');
  13. header('Location: index.html');
  14. </script>";
  15. }
  16. if ($precio = "")
  17. {
  18. echo "<script language='JavaScript'>
  19. alert('Debes introducir un precio para este plato');
  20. document.location=('index.html');
  21. header('Location: index.html');
  22. </script>";
  23.  
  24. }
  25. }

Última edición por sonystar_17; 07/06/2016 a las 10:55
  #7 (permalink)  
Antiguo 07/06/2016, 11:44
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Creo que este código esta mal pero, ya lo he probado antes, tanto con GET como con posterior y no funciona. Gracias. Lo necesito resolver cuanto antes
  #8 (permalink)  
Antiguo 07/06/2016, 11:45
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Como con POST, perdón
  #9 (permalink)  
Antiguo 07/06/2016, 13:23
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Y sí, tienes razón, el segundo if está mal pero el primero está bien y si lo mando vacío, no me saca el error. Es como si no entrara en el primer if.
  #10 (permalink)  
Antiguo 07/06/2016, 13:38
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Atención pregunta, ¿hay algún debugger para php parecido al que hay en Visual Studio?
  #11 (permalink)  
Antiguo 07/06/2016, 14:10
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

que no te funciona ?
en el primer mensaje pones esto :

Código HTML:
Ver original
  1. <form method="get" action="nuevo_plato.php">

en el segundo mensaje lo pones asi :

Código HTML:
Ver original
  1. <form method="post" action="nuevo_plato.php">


si no funciona es porque aca

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['btn_entrar']))
  3. {
  4. $titulo = $_POST['titulo'];
  5. $plato = $_POST['plato'];
  6. $precio = $_POST['precio'];
  7. echo $precio;
  8. if ($plato == "")
  9. {
  10. echo "<script language='JavaScript'>
  11. alert('Debes introducir un plato');
  12. document.location=('index.html');
  13. header('Location: index.html');
  14. </script>";
  15. }
  16. if ($precio == "")// tenias puesto = , cuando debe ser ==
  17. {
  18. echo "<script language='JavaScript'>
  19. alert('Debes introducir un precio para este plato');
  20. document.location=('index.html');
  21. header('Location: index.html');
  22. </script>";
  23. }
  24. }


suerte.
  #12 (permalink)  
Antiguo 09/06/2016, 12:52
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Buenas tardes a todos. Esto sigue sin funcionar:
<body>

<?php
include ("../cafeteria_tonik_conexion.php");
if(isset($_POST['btn_entrar']))
{
$titulo = $_POST['titulo'];
$plato = $_POST['plato'];
$precio = $_POST['precio'];
if ($plato == '')
{
echo "<script language='JavaScript'>
alert('Debes introducir un plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
if ($precio == '')
{
echo "<script language='JavaScript'>
alert('Debes introducir un precio para este plato');
document.location=('nuevo_plato.php');
</script>";
header('Location: nuevo_plato.php');
}
}
?>

<div id="apDiv1"></div>
<div id="apDiv2">
<form method="post" action="nuevo_plato.php">
<p>
<label for="titulo">Título del plato:</label>
<input name="titulo" type="text" id="titulo">
</p>
<p>
<label for="plato">Plato:</label>
</p>
<p>
<textarea name="plato" rows="4" cols="60"></textarea>
</p>
<p>
<label for="precio">Precio del plato:</label>
<input type="number" name="precio" id="precio" class="precio" step="any">
</p>
<p align="center">
<input id="btn_entrar" type="submit" value="Guardar" name="btn_entrar">
</p>
</form>
</div>
<div id="DivLogo">Cafetería Tonik Administración</div>

</body>
</html>

Cuando le doy al botón guardar, con los campos en blanco, debería sacarme el mensaje de que están vacíos, pero no hace nada más que volver a cargar la página. Ayuda por favor. Gracias.
  #13 (permalink)  
Antiguo 09/06/2016, 13:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Error en formulario php

Hola sergiodueso,

Si colocaras el código con su correspondiente highlight, sería mucho más probable que recibas ayuda, se lee muy mal el código sin highlight, además, estás incluyendo un archivo que da que pensar que hay más código del que muestras, y ahí puede haber algo que influya en tu problema.
  #14 (permalink)  
Antiguo 09/06/2016, 13:35
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Buenas tardes, no hay más código, sólo un poco de CSS. Pero de todas formas lo pondré todo, por si acaso.
  #15 (permalink)  
Antiguo 09/06/2016, 15:53
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Error en formulario php

Código PHP:
Ver original
  1. if ($plato == '')
esto está mal.

Prueba así.

Código PHP:
Ver original
  1. if (!empty($plato))

De últimas, haz un var_dump de todo el post para que veamos que estás recibiendo. Saludos
  #16 (permalink)  
Antiguo 09/06/2016, 23:14
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

cambia

Código PHP:
Ver original
  1. header('Location: index.php');

por

Código PHP:
Ver original
  1. header('refresh:0;url=index.php');

suerte!
  #17 (permalink)  
Antiguo 11/06/2016, 03:29
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Esto sigue sin funcionar. Os pongo el código completo del archivo nuevo_plato.php. Gracias.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Administración Cafetería Tonik</title>
<link href="estilos.css" rel="stylesheet" type="text/css">
<style type="text/css">
#apDiv1 {
position: absolute;
width: 422px;
height: 316px;
z-index: 1;
left: 321px;
top: 148px;
border-top-width: thin;
border-right-width: thin;
border-bottom-width: thin;
border-left-width: thin;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
box-shadow: 5px 5px 5px #3333CC;
}
#apDiv2 {
position: absolute;
width: 405px;
height: 274px;
z-index: 2;
left: 332px;
top: 160px;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
border-top-width: thin;
border-right-width: thin;
border-bottom-width: thin;
border-left-width: thin;
}
label {
font-family:"Times New Roman", Times, serif;
font-size:18px;
}
input {
background-color:#039;
color:#FFF;
width:250px;
height:20px;
font-family:"Times New Roman", Times, serif;
font-size:18px;
}
textarea {
background-color:#039;
color:#FFF;
width:370px;
font-family:"Times New Roman", Times, serif;
font-size:18px;
}
#precio {
background-color:#039;
color:#FFF;
width:50px;
height:20px;
font-family:"Times New Roman", Times, serif;
font-size:18px;
}
#btn_entrar {
background-color:#666;
color:#000;
width: 80px;
height: 40px;
cursor:pointer;
color:#FFF;
text-shadow: rgb(0,0,150) 3px 3px 5px;
font-family:"Times New Roman", Times, serif;
font-size:20px;
}
body {
background: -webkit-linear-gradient(20deg, #FFF, #03F);
background: -moz-linear-gradient(20deg, #FFF, #03F);
background: -o-linear-gradient(20deg, #FFF, #03F);
background: linear-gradient(20deg, #FFF, #03F);
}
#apDiv3 {
position: absolute;
width: 690px;
height: 115px;
z-index: 3;
left: 233px;
top: 5px;
text-align:center;
font-family:"Times New Roman", Times, serif;
font-size:36px;
color:#FFF;
text-shadow: rgb(0,0,150) 3px 3px 3px;
}
</style>
</head>

Código PHP:
Ver original
  1. <?php
  2. include ("../cafeteria_tonik_conexion.php");
  3. if (isset($_GET['id_mio']))
  4. {
  5.     $identificador = $_GET['id_mio'];
  6.     echo $identificador;
  7. }
  8.  
  9.  if(isset($_POST['btn_entrar']))
  10.   {
  11.      $titulo = $_POST['titulo'];
  12.      $plato = $_POST['plato'];
  13.      $precio = $_POST['precio'];
  14.      if (empty($plato))
  15.      {
  16.          echo "<script language='JavaScript'>
  17.                alert('Debes introducir un plato');
  18.                 document.location=('nuevo_plato.php');
  19.                </script>";
  20.          header('Location: nuevo_plato.php');
  21.      }
  22.      if (empty($precio))
  23.      {
  24.          echo "<script language='JavaScript'>
  25.                alert('Debes introducir un precio para este plato');
  26.                 document.location=('nuevo_plato.php');
  27.                </script>";
  28.          header('Location: nuevo_plato.php');
  29.      }
  30.   }
  31. ?>
<body>
<div id="apDiv1"></div>
<div id="apDiv2">
<form method="post" action="nuevo_plato.php">
<p>
<label for="titulo">Título del plato:</label>
<input name="titulo" type="text" id="titulo">
</p>
<p>
<label for="plato">Plato:</label>
</p>
<p>
<textarea name="plato" rows="4" cols="60"></textarea>
</p>
<p>
<label for="precio">Precio del plato:</label>
<input type="number" name="precio" id="precio" class="precio" step="any">
</p>
<p align="center">
<input id="btn_entrar" type="submit" value="Guardar" name="btn_entrar">
</p>
</form>
</div>
<div id="DivLogo">Cafetería Tonik Administración</div>

</body>
</html>
  #18 (permalink)  
Antiguo 11/06/2016, 10:12
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Error en formulario php

Por favor en el código PHP después del isset($botonsubmit)

Coloca ésta línea como te la escribo, para ver qué estás recibiendo.

Código PHP:
Ver original
  1. var_dump($_POST);
  #19 (permalink)  
Antiguo 11/06/2016, 12:22
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

No hace nada!!!!!!!
  #20 (permalink)  
Antiguo 11/06/2016, 12:27
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Ahora he probado introduciendo algo en los campos de texto y sí, var_dump si me ha sacado lo que he introducido, pero si envío el formulario con los campos vacíos, no me saca los mensajes correspondientes.
  #21 (permalink)  
Antiguo 11/06/2016, 12:37
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Esto es lo que me ha sacado var_dump:

array
'titulo' => string 'hhhhh' (length=5)
'plato' => string 'uuuuu' (length=5)
'precio' => string '88' (length=2)
'btn_entrar' => string 'Guardar' (length=7)
  #22 (permalink)  
Antiguo 11/06/2016, 12:43
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

Hola, intenta eliminando el header ya que en el echo estas redireccionando, hazlo asi:

Código PHP:
Ver original
  1. if (empty($plato))
  2.      {
  3.          echo "<script language='JavaScript'>
  4.                alert('Debes introducir un plato');
  5.                document.location=('nuevo_plato.php');
  6.                </script>";
  7.          //header('Location: nuevo_plato.php');
  8.      }
  9.      if (empty($precio))
  10.      {
  11.          echo "<script language='JavaScript'>
  12.                alert('Debes introducir un precio para este plato');
  13.                document.location=('nuevo_plato.php');
  14.                </script>";
  15.          //header('Location: nuevo_plato.php');
  16.      }

Nos cuentas si te funciono.

Saludos
  #23 (permalink)  
Antiguo 11/06/2016, 12:48
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Funciona!!! Muchas gracias. ¿Me podrías explicar por qué ahora funciona y antes no?
  #24 (permalink)  
Antiguo 11/06/2016, 13:30
Avatar de kip13  
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

Pues porque primero se ejecuta header() y este te redirecciona antes de poder ejecutar el codigo javascript que envias a través del echo.

Es por eso que la solucion es mostrar el alert y luego de esto redireccionar por medio de javascript.

Saludos
  #25 (permalink)  
Antiguo 11/06/2016, 16:15
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 8 meses
Puntos: 13
Respuesta: Error en formulario php

le dije que usara :

Código PHP:
Ver original
  1. header('refresh:0;url=index.php');
pero ni leyó
  #26 (permalink)  
Antiguo 12/06/2016, 01:06
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Error en formulario php

Gracias a todos por vuestras soluciones. Y sí leí todos los mensajes que me enviasteis. De nuevo, gracias a todos. Un saludo

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 09:20.