Foros del Web » Programando para Internet » PHP »

validación de formulario

Estas en el tema de validación de formulario en el foro de PHP en Foros del Web. Hola, el que me pueda ayudar con este formulario, primera vez que hago un formulario con PHP y funciona bien jajajaja el tema es que ...
  #1 (permalink)  
Antiguo 03/03/2009, 06:48
sergio87
Invitado
 
Mensajes: n/a
Puntos:
Busqueda validación de formulario

Hola, el que me pueda ayudar con este formulario, primera vez que hago un formulario con PHP y funciona bien jajajaja
el tema es que no se como hacer para que sean obligatórios los campos que solicito que complete el usuario.

Les dejo el código html del formu, que llama mediante el método post a una acción en este caso correo.php

Código HTML:
<form action="correo.php" method="post">			
	<p>
		<label for="nombre">Nombre <span>(obligatorio)</span></label><br />
		<input id="nombre" type="text" size="25" value="&nbsp;"/><br />
	</p>
	<p>
		<label for="email">Email <span>(obligatorio)</span></label><br />
		<input id="email" type="text" size="25" value="&nbsp;"/><br />
	</p>
	<p>
		<label for="mensaje">Mensaje <span>(obligatorio)</span></label><br />
		<textarea id="mensaje" cols="50" rows="5"></textarea><br />
	</p>							
	<p>
		<input id="enviar" type="submit" value="Enviar" title="Enviar Mensaje" />
	</p>							
</form> 
Les dejo el código PHP para que vean como lo utilizé y puedan ayudarme.

Código PHP:
<?php
$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
$mensaje $_POST['mensaje'];

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$para '[email protected]';
$asunto 'Contacto';

mail($para$asuntoutf8_decode($mensaje), $header);

echo 
'mensaje enviado correctamente';
?>
Gracias!
  #2 (permalink)  
Antiguo 03/03/2009, 06:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: validación de formulario

Puedes comprobar los campos obligatorios usando empty() para saber si están vacíos, y si así es (con un if o semejante) no enviar el e-mail y mostrar un error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/03/2009, 08:13
sergio87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: validación de formulario

gracias david por tu respuesta inmediata, ahora me podrías facilitar un ejemplo para que me sea mas fácil hacerlo y así aprenderlo. Porque no tengo noción de PHP y necesito de ayuda. jejeje

Saludos
  #4 (permalink)  
Antiguo 03/03/2009, 08:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: validación de formulario

Documentación: http://www.php.net/manual/es/function.empty.php

En fin:
Código php:
Ver original
  1. if (empty($nombre)) {
  2.     /* Error, no ingresó el nombre */
  3. } else {
  4.     /* Nombre rellenado */
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/03/2009, 11:13
sergio87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: validación de formulario

Sigue sin funcionar, espero tu ayuda.

Código PHP:
<?php
$nombre 
$_POST['nombre'];
$mail $_POST['mail'];
$mensaje $_POST['mensaje'];

$header 'From: ' $mail " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$para '[email protected]';
$asunto 'Contacto';

mail($para$asuntoutf8_decode($mensaje), $header);

if (empty(
$nombre)) {
/* Error, no ingresó el nombre */
} else {
/* Nombre rellenado */
}

echo 
'mensaje enviado correctamente';
?>
saludos
  #6 (permalink)  
Antiguo 03/03/2009, 11:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: validación de formulario

Era sólo un código de ejemplo, si te fijas, está comentado, donde dice "error, no ingresó el nombre" debes colocar el código que quieres que se ejecute en caso de que no haya rellenado el campo, y en la otra parte realizas la acción si ha rellenado correctamente (en este caso, esa acción sería la de enviar el email)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 03/03/2009, 21:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 22
Antigüedad: 16 años, 1 mes
Puntos: 0
De acuerdo Respuesta: validación de formulario

Hola pues mira lo q yo hice fue lo siguiente,
Te envia un mensaje diciendo q el campo obligatotio no ha sido llenado, claro eso lo puedes modificar con los campos q sean obligatorios, espero sea de tu ayuda
aqui te dejo el ejemplo completo :

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Primero </title>
// validacion de campos
<script language="JavaScript" src="mm_menu.js"></script>
<script>
<!--
function validar(formulario)

{
// primera comprobación
if(formulario.nombre.value == ''){
// informamos del error
alert('Inserta tu nombre ');
// seleccionamos el campo incorrecto
formulario.nombre.focus();
return false;
}

// segunda comprobación
if(formulario.apellidos.value == ''){
// informamos del error
alert('Inserta tus Apellidos ');
// seleccionamos el campo incorrecto
formulario.apellidos.focus();
return false;
}

return true;
}
//-->
</script>


</head>

<body>
<?php
// CONECCION A LA BASE DE DATOS
$conexion=mysql_connect("localhost", "root");
mysql_select_db("ejemplo", $conexion);
?>
<form action="procesar_uno.php" method="post" onsubmit="return validar(this)" >
<table width="604" height="122" border="0">
<tr>
<td width="80" height="21">Nombre</td>
<td width="143"><INPUT TYPE="TEXT" NAME="nombre" size="25" /></td>
<td width="105">Apellido </td>
<td width="258"><INPUT TYPE="TEXT" NAME="apellidos" size="25" /></td>
</tr>
<tr>
<td>Edad</td>
<td><INPUT TYPE="TEXT" NAME="edad" size="25" /></td>
<td>Sexo</td>
<td><INPUT TYPE="TEXT" NAME="sexo" size="25" /></td>
</tr>
<tr>
<td height="46">Direccion</td>
<td><INPUT TYPE="TEXT" NAME="direccion" size="25" /></td>

</tr>
</table>
<p><br />
</p>
<div align="center"><br />
<input name="submit" type="submit" value="Enviar" />
</div>
</form>
<p>&nbsp; </p>
</body>
</html>
  #8 (permalink)  
Antiguo 03/03/2009, 22:21
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: validación de formulario

yovan lo que estas haciendo es que estás validando sólo de la parte del cliente, pero no de parte del servidor.

sergio lo que debes de hacer es
verificar con isset si existen las variables, luego con empty verificar que los campos vacíos, adicionalmente puedes utilizar strip_tags para filtrar tags html y php en los datos ingresados.

todo esto lo haces simplemente lo haces con if.

revisa un poco el manual de php y los FAQS de este foro, verás que es sencillo
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #9 (permalink)  
Antiguo 04/03/2009, 12:00
sergio87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: validación de formulario

gracias Argy, pero no puedo usar bien ambos atributos .. ISSET y EMPTY, y aunque david me ayudó bien, no puedo lograr que sean obligatorios los campos usando php

:(

espero mas ayuda, saludos y gracias a todos!
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 20:14.