Foros del Web » Programando para Internet » PHP »

Validación de formularios

Estas en el tema de Validación de formularios en el foro de PHP en Foros del Web. hola estoy intentando hacer un formulario, al pulsar el botón hay que comprobar los datos, meterlos en la base de datos y redireccionar en función ...
  #1 (permalink)  
Antiguo 13/11/2009, 05:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 8 meses
Puntos: 17
Validación de formularios

hola estoy intentando hacer un formulario, al pulsar el botón hay que comprobar los datos, meterlos en la base de datos y redireccionar en función de los datos.

tengo esto:
Código:
<form action='' method='post'>
Nombre: <input type='text' name='nombre' />
Apellidos: <input type='text' name='apellidos'/>
<input type='submit' value='Añadir' name='enviar'/>
</form>

Pues bien, mi duda es como recoger los datos al pulsar un botón, mi idea es:

Código:
<?php
if(se ha pulsado el botón){
         todo lo demás
}
?>

Como le digo esto de se ha pulsado el botón? Gracias. Saludos
  #2 (permalink)  
Antiguo 13/11/2009, 06:14
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Validación de formularios

Yo cada vez que hago un form, lo hago siempre de la misma manera...

ademas de todos los campos de texto y en boton "submit", creo un campo "hidden":

Código html:
Ver original
  1. <input type="hidden" name="submit" value="true" />

Entonces para saber si se enviaron los datos, con php hago asi, como vos decis...

Código php:
Ver original
  1. <?php
  2.  
  3. if ($_POST['submit']) {
  4.         // Aca compruebo los datos y hago lo que necesite...
  5. }
  6.  
  7. ?>

Si lo vas a hacer de esta manera, acordate de que el hidden, tenga algun valor. Como te mostre en el ejemplo, en mi caso pongo value="true" tambien se puede value="1"... Ya que si no le asignas un valor, y no estoy seguro pero si le asignas como valor 0, te lo va a tomar como falso, entonces no va a funcionar.

Saludos.
  #3 (permalink)  
Antiguo 13/11/2009, 06:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 8 meses
Puntos: 17
Respuesta: Validación de formularios

Gracias! funcionó perfecto, lo del "hidden" no lo he hecho porque no entiendo muy bien la funcionalidad, ¿para que lo haces?

Saludos!
  #4 (permalink)  
Antiguo 13/11/2009, 06:29
Avatar de Gmod  
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios

Cita:
Iniciado por Nisrokh Ver Mensaje
Yo cada vez que hago un form, lo hago siempre de la misma manera...

ademas de todos los campos de texto y en boton "submit", creo un campo "hidden":

Código html:
Ver original
  1. <input type="hidden" name="submit" value="true" />

Entonces para saber si se enviaron los datos, con php hago asi, como vos decis...

Código php:
Ver original
  1. <?php
  2.  
  3. if ($_POST['submit']) {
  4.         // Aca compruebo los datos y hago lo que necesite...
  5. }
  6.  
  7. ?>

Si lo vas a hacer de esta manera, acordate de que el hidden, tenga algun valor. Como te mostre en el ejemplo, en mi caso pongo value="true" tambien se puede value="1"... Ya que si no le asignas un valor, y no estoy seguro pero si le asignas como valor 0, te lo va a tomar como falso, entonces no va a funcionar.

Saludos.
Una consulta por que lo haces con un hidden?
por que no tan solo al boton de envio darle el nombre "submit" ?
  #5 (permalink)  
Antiguo 13/11/2009, 06:32
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Validación de formularios

Los campos hidden (como la palabra lo dice: "hidden" = "escondido") es un campo para mandar informacion que no queres que sea modificada por el usuario o que manipulas a traves de javascript... Vos cuando mandas datos a traves de metodo $_POST o $_GET, se arma un arreglo con los datos enviados. Entonces lo unico que tenes que hacer para saber si se enviaron datos, es parsear la variable $_POST o $_GET para ver si contiene datos... Asi de simple jeje

Saludos
  #6 (permalink)  
Antiguo 13/11/2009, 06:34
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Validación de formularios

asi tmb funciona sin tantos lios y no agregas una linea mas

Código PHP:
<input type="submit" value="enviar" name="enviar" /> 
Código PHP:
if(isset($_POST['enviar']))
{
echo 
"Apreto enviar";

  #7 (permalink)  
Antiguo 13/11/2009, 06:34
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Validación de formularios

Cita:
Iniciado por Gmod Ver Mensaje
Una consulta por que lo haces con un hidden?
por que no tan solo al boton de envio darle el nombre "submit" ?
Creo que mas que nada es costrumbre xD no se porke lo veo mas seguro... Pasa que una vez me paso que el boton submit era una imagen... Y como era una imagen, tenia value="" entonces al hacer esto:

Código php:
Ver original
  1. <?php
  2. if ($_POST['submit']) {
  3.         // ...
  4. }
  5. ?>

No me anda, ya que a la variable del boton me la tomaba como false, porque no tenia valor, ya que era un imagen... Por eso es que me resulta mas comodo...

Saludos
  #8 (permalink)  
Antiguo 13/11/2009, 06:39
Avatar de Gmod  
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios

Cita:
Iniciado por Nisrokh Ver Mensaje
Creo que mas que nada es costrumbre xD no se porke lo veo mas seguro... Pasa que una vez me paso que el boton submit era una imagen... Y como era una imagen, tenia value="" entonces al hacer esto:

Código php:
Ver original
  1. <?php
  2. if ($_POST['submit']) {
  3.         // ...
  4. }
  5. ?>

No me anda, ya que a la variable del boton me la tomaba como false, porque no tenia valor, ya que era un imagen... Por eso es que me resulta mas comodo...

Saludos
Tambien me ocurrio lo mismo una vez, pero descubri que para las imagenes se tiene que consultar por $_POST['submit_x'] (agregar el _x)
  #9 (permalink)  
Antiguo 13/11/2009, 06:47
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Validación de formularios

mmm no entendi xD
  #10 (permalink)  
Antiguo 13/11/2009, 06:49
Avatar de Gmod  
Fecha de Ingreso: marzo-2008
Mensajes: 20
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Validación de formularios

Código PHP:
<input type="submit" value="enviar" name="enviar" /> 
Código PHP:
if(isset($_POST['enviar_x']))
{
echo 
"Apreto enviar";

  #11 (permalink)  
Antiguo 13/11/2009, 06:55
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Validación de formularios

jaja creo que no me entienden lo q kise decir... les doy el ejemplo entero a ver si me entienden:

Código html:
Ver original
  1.         <head>
  2.                 <title>Form</title>
  3.                 <style type="text/css">
  4.                         <!--
  5.                        .submit {
  6.                                background: url('images/submit.jpg') no-repeat;
  7.                                width: 128px;
  8.                                height: 32px;
  9.                        }
  10.                        -->
  11.                 </style>
  12.         </head>
  13.         <body>
  14.                 <form method="post">
  15.                         <input type="text" name="foo" />
  16.                         <input type="text" name="bar" />
  17.                         <input type="submit" name="submit" value="" class="submit" />
  18.                 </form>
  19.         </body>
  20. </html>

Normalmente el boton "submit" le ponen en "value" Enviar, Send, etc. entonces al llegar la variable $_POST['submit'] con el valor Enviar, Send, etc. La va a tomar como "true" si hacemos el condicional if ($_POST['submit']) ... El en caso de arriba, si ven, como value le puse NADA, porque no el text "Envia, Send" o lo q sea esta en una imagen aplicado con css... Entonces si hago el condicional con $_POST['submit´] en ese caso, como no tiene valor, lo va a tomar como "false", y no va a funcionar...

Alguien me entiende xD?
saludos
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:14.