Foros del Web » Programando para Internet » PHP »

Problemas con validador de formulario

Estas en el tema de Problemas con validador de formulario en el foro de PHP en Foros del Web. Buenas tardes, decido consultarles a ustedes porque ya he buscado todas las vias que me permiten mis conocimientos y no doy con ello. No soy ...
  #1 (permalink)  
Antiguo 27/11/2008, 13:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 15 años, 11 meses
Puntos: 0
Problemas con validador de formulario

Buenas tardes,

decido consultarles a ustedes porque ya he buscado todas las vias que me permiten mis conocimientos y no doy con ello. No soy programador, pero intento entender el código que encuentro por ahí. A partir de esto me monto yo mis conjeturas...

He hecho este formulario en php donde al final tiene un validador. Buscando encontré cómo validar al menos que los campos no queden vacíos. Necesitaría comprobrar todos los campos y que no quedara ninguno vacío.

Tambien tengo un problema y es que me gustaríua que el mensaje de " el mail es obligatorio y el tno es obligatorio" ( que son los dos que de momento he intentado validar) sólo aparecieran cuando éstos no están rellenos y no como ocurre ahora, que aparecen impresos por defecto al final del formulario.

Les agradecería me echaran un cable. Muchas gracias.


Pd.-Si sugieren que me replantee rehacer el formulario de otra forma, estaré encantado de practicar sus sugerencias.




Código PHP:

<?php

$mail_destinatario 
'[email protected]';        

    

echo 
'<form action="?" method="post">
<label for="nombre">Nombre:</label>
    <input type="text" name="nombre" size="50" maxlength="50"><br/>
<label for="email">Email:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
    <input type="text" name="email" size="50" maxlength="50"><br/>
    <label for="tfno">Tfno:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
    <input type="text" name="tfno" size="10" maxlength="12"><br/>
<label for="asunto">Asunto:&nbsp;</label>
    <input type="text" name="asunto" size="50" maxlength="60"><br/>
<label for="mensaje">Mensaje:</label>
    <textarea name="mensaje" cols="15" rows="3"></textarea><br/>
<label for="n_personas">Número de personas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
    <select name="n_personas" id="n_personas">
    <option value="01">1</option>
                <option value="02">2</option>
                <option value="03">3</option>
                    </select><br />
    <label for="n_habitaciones">Número de habitaciones</label>
    <select name="n_habitaciones" id="n_habitaciones">
    <option value="01">1</option>
                    </select><br />
    <label for="dia_llegada"> Dia de llegada:&nbsp;&nbsp;</label>
    <select name="dia_llegada" id="dia_llegada">
                <option value="01">1</option>
                <option value="02">2</option>
                              </select>
        <label for="mes_llegada"></label>              
            <select name="mes_llegada" id="mes_llegada">
                <option value="01">Enero</option>
                                           </select>              
        <label for="ano_llegada"></label>              
              <select name="ano_llegada" id="ano_llegada">
                <option value="2008">2008</option>
                <option value="2009">2009</option>
                <option value="2010">2010</option>
                               </select><br />
             <!--dia salida -->
     <label for="dia_salida"> Dia de salida: &nbsp;&nbsp;</label>
         <select name="dia_salida" >
                <option value="01">1</option>
                <option value="02">2</option>
                <option value="03">3</option>
                               </select>
        <label for="mes_salida"></label>              
                <select name="mes_salida">
                  <option value="01">Enero</option>
                  <option value="02">Febrero</option>
                          </select>
        <label for="ano_salida"></label>              
                <select name="ano_salida">
                <option value="2008">2008</option>
                  </select>    <br /><br /><br />
<label for="enviar">
<input type="submit" name="enviar" value="Enviar consulta"></label>
</form><p>&nbsp;<p><br>'

if (empty(
$HTTP_POST_VARS['email']))
{
  echo 
"el mail es obligatorio ";

if (empty(
$HTTP_POST_VARS['tfno']))
{
  echo 
"el tfno es obligatorio";

else
{
if (isset (
$_POST['enviar'])) {  $headers .= "From: ".$_POST['email'].  "\r\n"
   if ( 
mail ($mail_destinatario$_POST['asunto'], 
   
"Nombre y apellidos : ".$_POST['nombre']."\n
   Teléfono:"
.$_POST['tfno']."\n
   Mail:"
.$_POST['mail']."\n
   Asunto: "
.$_POST['asunto']."\n
   Numero de personas: "
.$_POST['n_personas']."\n
   Numero de habitaciones: "
.$_POST['n_habitaciones']."\n
   Fecha llegada: "
.$_POST['dia_llegada']."/".$_POST['mes_llegada']."/".$_POST['ano_llegada']."\n
   Fecha salida: "
.$_POST['dia_salida']."/".$_POST['mes_salida']."/".$_POST['ano_salida']."\n
   Mensaje :\n "
.$_POST['mensaje'], $headers )) 
   echo 
'<p>Su mensaje ha sido enviado correctamente. 
   Gracias por contactar con nosotros</p>'
;
   else echo 
'<p>Error al enviar el formulario. 
   Por favor, inténtelo de nuevo mas tarde.</p>'
;  
}
}
?>
  #2 (permalink)  
Antiguo 27/11/2008, 14:14
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Problemas con validador de formulario

Mira lo que tienes que hacer es una validación en Javascript para que tus campos sean obligatorios o para que tengan un formato determinado, date una mirada por el foro de Javascript. Lo mas recomendable es que tengas un formulario en html con lass validaciones y un archivo php que se encargue de procesar lo que le envies con el formulario.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
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 06:45.