Foros del Web » Programando para Internet » PHP »

Validar campos de un formulario

Estas en el tema de Validar campos de un formulario en el foro de PHP en Foros del Web. hola, quisiera que me ayudaran con el siguiente problema, tengo un formulario de contacto en un sitio, pero no esta validado por lo que en ...
  #1 (permalink)  
Antiguo 23/11/2005, 12:43
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
Validar campos de un formulario

hola, quisiera que me ayudaran con el siguiente problema,
tengo un formulario de contacto en un sitio, pero no esta validado por lo que en ocaciones me llegan e-mails sin niungun contenido o con el contenido por defecto, como puedo hacerlo para validar los campos de mi formulario para que no envie nada si alguno de los campos esta vacio?

este es el codigo de la pagina contacto.php
Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?><br>
  <p class="Estilo13"> Completa los datos que a continuaci&oacute;n se piden, as&iacute; nos pondremos en contacto contigo. </p>
  <table width="448" border="0" align="center">
    <tr>
      <td width="300"><p class="Estilo13">&nbsp;</p>
        <form action="contacto.php" method=post>
          <p><span class="items-main">Nombre *</span><br>
              <input name="nombre" type=text size=30>
              <br>
              <span class="items-main">Email *</span><br>
              <input name="email" type=text class="listas2" value="[email protected]" size=30>
              <br>
              <span class="items-main">Tel&eacute;fono *</span><br>
              <input name="fono" type=text size=25>
              <br>
              <span class="items-main">Comentarios *</span><br>
              <textarea name="comentarios" cols=44 rows=6 class="Estilo20" id="comentarios"></textarea>
              <br>
              <input type=submit class="items-main" value="Enviar">
          </p>
        </form>
        </td>
      <td width="138"><div align="left">
        <p><img src="img/correo1.jpg" alt="e-mail Centro Tur&iacute;stico Lago Natri - Chilo&eacute;" width="120" height="89"></p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
        <p>&nbsp;</p>
      </div></td>
    </tr>
  </table>  
  <p class="Estilo13"><span class="Estilo10">             <? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "      << Consulta desde Sitio Web >>> \n";
    
$cuerpo .= " \n";
    
$cuerpo .= "Nombre de Contacto:" $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Email de Contacto >:" $HTTP_POST_VARS["email"] . "\n"
    
$cuerpo .= "Teléfono:" $HTTP_POST_VARS["fono"] . "\n"
    
$cuerpo .= "Comentarios del usuario:" $HTTP_POST_VARS["comentarios"] . "\n"

    
$add_header "From: Sitio Web <".$_POST[email].">\r\n"

    
//mando el correo... 
    
mail("[email protected]""Consulta desde sitio web"$cuerpo$add_header);

    
//doy las gracias por el env&iacute;o 
    
echo"<br>";
    echo
"<br>";
    echo
"<br>";
    echo
"<br>";
    echo
"<div align=\"center\"><span class=\"items-main\"> Gracias por contactarnos, pronto nos comunicaremos con usted.</span><br></div>"
    echo
"<br>";
    echo
"<div align=\"center\"><img src=\"img/correo.gif\"></div>";
    echo
"<br>";

?>
          </span></p>
  <p align="center" class="Estilo13"><span class="Estilo10"><span class="items-main">___________________________<br>
            </span><span class="Estilo9"> Para mayor informaci&oacute;n cont&aacute;ctenos a los tel&eacute;fonos (cel) <strong>95420574</strong> - <strong>98739466</strong><br>
            o a nuestros e-mails <span class="Estilo16">[email protected] </span>y <span class="Estilo16">[email protected]</span> <br>
            Esperamos sus preguntas y/o sugerencias.<br> <br>
             <em>Staff Centro Tur&iacute;stico Lago Natri 2005 </em></span></span></p>
  <P align="justify" class="Estilo10">
saludos y gracias
__________________
Chiloé
  #2 (permalink)  
Antiguo 23/11/2005, 13:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
como puedo hacerlo para validar los campos de mi formulario para que no envie nada si alguno de los campos esta vacio?
Busca en el foro... tema muy tratado.

Simplemente pása los campos recibidos por la función empty(), es con ella con la que sabes si vienen vacios o no:
Código PHP:
if(empty($_POST['campo'])) {
   echo 
"El campo esta vacio";
} else {
   echo 
"Dato recibidio correctamente";

. Lo demás, organizarte y aplicarlo. www.php.net/if

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 24/11/2005, 08:00
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
hola lo ise y me resulto bien, pero arrglando un poko el codigo me da el siguiente error
Código HTML:
Parse error: parse error, unexpected '{' in /var/www/html/virtual/turismolagonatri.cl/www/contacto.php on line 301
el codigo que tengo el formulario es el siguiente

Código PHP:
    //mando el correo...
    
if(empty($_POST['nombre']) or empty($_POST['email']) or empty($_POST['fono']) or empty($_POST['comentarios']) { //valido que no alla campos vacios
        
echo"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo 
"<div align=\"center\"><span class=\"items-main\">Debe rellenar todos los campos...<br><a href=\"contacto.php\"><img src=\"img/volver.gif\" border=0></a></span><br></div>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        echo
"<br>";
        elseif (
$email=="[email protected]") {//valido que el no sea el mail por defecto 
                
echo"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<div align=\"center\"><span class=\"items-main\">el e-mail: '[email protected]' es invalido, porfavor ingresa un e-mail valido...<br><a href=\"contacto.php\"><img src=\"img/volver.gif\" border=0></a></span></div>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
                echo
"<br>";
        } else {
//envio el mail
    
       
mail("[email protected]""Consulta desde sitio web"$cuerpo$add_header);

    
//doy las gracias 
    
echo"<br>";
    echo
"<div align=\"center\"><span class=\"items-main\"> Su  mensaje ha sido enviado satisfactoriamente,<br> gracias por utilizar nuestro formulario de contacto,<br> pronto nos comunicaremos con usted.</span><br></div>"
    echo
"<br>";
    echo
"<br>";
    echo
"<div align=\"center\"><img src=\"img/correo.gif\"></div>";
    echo
"<br>";
    echo
"<br>";
         }
    } 
?> 
la linea 301 es en donde empiesa el codigo php
alguna sugerencia
saludos
__________________
Chiloé
  #4 (permalink)  
Antiguo 24/11/2005, 09:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para que usas un "echo" por línea de código HTML que quieres presentar?

Usa sintax tipo:

Código PHP:
<?
//aquíu PHP
?>
aquí HTML
aquí HTML <? echo "y aquí php" ?>
mas HTML
<?
// mas PHP
?>
Así obtendrás dos cosas
1) menos problemas con ; que de dejes por el camino .. comillas y demás que usa HTML para mezclaro con PHP.
2) podrás ver como te queda el código HTML generado de forma visual si usas algún editor tipo "Dreamweaver".

Un saludo,
  #5 (permalink)  
Antiguo 24/11/2005, 09:23
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
ya gracias por el consejo ya depure el codigo, y arregle lo otro era solo un }elseif{
__________________
Chiloé
  #6 (permalink)  
Antiguo 24/11/2005, 10:44
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 2 meses
Puntos: 0
Tengo el mismo error alguien puede ayudar y decir como se acomoda el código?
  #7 (permalink)  
Antiguo 24/11/2005, 11:28
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
Isaac Mañe
finalmente lo deje asi:
codigo javascript lo pones antes del <body>
Código HTML:
<script language="JavaScript">
//Script verificador de formularios por Tunait!
//Los campos obligados deben terminar con un *
//No verifica los checkbox ni los radio

function verificarFormu(cualo)
{
for(m=0;m<cualo.length;m++)
	{
	if(cualo.elements[m].name.charAt(cualo.elements[m].name.length-1) == "*")
	{
		if(cualo.elements[m].value=="")
			{
			alert("Debe ingresar un " + cualo.elements[m].name.substring(0,cualo.elements[m].name.length-1))
			cualo.elements[m].focus()
			return false
			break;
			}
		if(cualo.elements[m].name=="Email" || cualo.elements[m].name=="Email*")
			{
			pat=/^[\w\_\.çñ]{2,255}@[\w]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/
			if(!pat.test(cualo.elements[m].value))
				{
				alert("Introduzca un E-mail válido")
				cualo.elements[m].focus()
				return false
				}
		
			}
		}
	else
	{
	continue;
	}
	}
	

}
</script> 
codigo del formulario

Código HTML:
 <? 
if (!$HTTP_POST_VARS){ 
?><br>
  <p class="Estilo13"> Completa los datos que a continuaci&oacute;n se piden, as&iacute; nos pondremos en contacto contigo. </p>
  <table width="448" border="0" align="center">
    <tr>
      <td width="300"><p class="Estilo13">&nbsp;</p>
        <form    name="form1" method="post" action="contacto.php" onSubmit="return verificarFormu(this)">
          <p><span class="items-main">Nombre *</span><br>
              <input name="Nombre*" type="text" id="Nombre" >
              <br>
              <span class="items-main">Email *</span><br>
              <input name="Email*" type=text class="listas2" value="[email protected]" size=30 id="Email">
              <br>
              <span class="items-main">Tel&eacute;fono *</span><br>
              <input name="Fono*" type=text size=25 id="Fono">
              <br>
              <span class="items-main">Comentarios *</span><br>
              <textarea name="Comentario*" cols=44 rows=6 class="Estilo20" id="Comentario"></textarea>
              <br>
              <input name="Submit" type=submit class="items-main" id="Submit" value="enviar">
          </p>
        </form> 
codigo php para el envio

Código PHP:
<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "      << Consulta desde Sitio Web >>> \n";
    
$cuerpo .= " \n";
    
$cuerpo .= "Nombre de Contacto:" $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Email de Contacto >:" $HTTP_POST_VARS["email"] . "\n";  
    
$cuerpo .= "Teléfono:" $HTTP_POST_VARS["fono"] . "\n"
    
$cuerpo .= "Comentarios del usuario:" $HTTP_POST_VARS["comentarios"] . "\n"

    
$add_header "From: Sitio Web <".$_POST[email].">\r\n"

    
//mando el correo...
   
mail("[email protected]""Consulta desde sitio web"$cuerpo$add_header);

    
//doy las gracias por el env&iacute;o 
    
echo"<br>";
    echo
"<div align=\"center\"><span class=\"items-main\"> Su  mensaje ha sido enviado satisfactoriamente,<br> gracias por utilizar nuestro formulario de contacto,<br> pronto nos comunicaremos con usted.</span><br></div>"
    echo
"<br>";
    echo
"<br>";
    echo
"<div align=\"center\"><img src=\"img/correo.gif\"></div>";
    echo
"<br>";
    echo
"<br>";

?>
espero te sirva.
__________________
Chiloé
  #8 (permalink)  
Antiguo 24/11/2005, 11:31
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
si te das cuenta en el codigo del formulario los "names" de los imput terminan con un *, si no quieres que te valide algun campo del formulario solo quita el asteristo
__________________
Chiloé
  #9 (permalink)  
Antiguo 24/11/2005, 17:29
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 2 meses
Puntos: 0
Muchas gracias. Era exactamente lo que quería!
  #10 (permalink)  
Antiguo 24/11/2005, 18:23
Avatar de Isaac Mañe  
Fecha de Ingreso: enero-2002
Ubicación: Caracas
Mensajes: 396
Antigüedad: 22 años, 2 meses
Puntos: 0
O.K solo una pregunta mas y disculpen que esto no sea de php, pero como sería agregar una validación para que los campos password y reescribir password no sean diferentes?
  #11 (permalink)  
Antiguo 25/11/2005, 05:47
Avatar de DoKyE  
Fecha de Ingreso: junio-2005
Mensajes: 144
Antigüedad: 18 años, 9 meses
Puntos: 0
creo ke una condicion if seria una solucion en donde compararas los 2 campos si se cumple la condicion ejecutas el resto del scrip sino mandas una alerta
saludos
__________________
Chiloé
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 10:15.