Foros del Web » Programando para Internet » PHP »

Ayuda con Validacion

Estas en el tema de Ayuda con Validacion en el foro de PHP en Foros del Web. Estoy tratando de validar mi formulario Quiero que valide mi email y tambien la edad . que imprima cuando la edad sea un numero "integer" ...
  #1 (permalink)  
Antiguo 23/12/2002, 15:00
Avatar de Imani Faith  
Fecha de Ingreso: diciembre-2002
Mensajes: 5
Antigüedad: 15 años
Puntos: 0
Ayuda con Validacion

Estoy tratando de validar mi formulario
Quiero que valide mi email y tambien la edad .
que imprima cuando la edad sea un numero "integer"

Mi codigo es como sigue ... a ver si alguien me ayuda recien estoy aprendiendo...

<html>
<head>
Form
</head>
<body>
<?

//Create a function to display a form when called:
function display_form()
{
//Make form variables global
global $fname;
global $lname;
global $email;
global $age;

$myform=<<<EndForm
<form action=validating3.php4 method="post">
Enter First Name: <input type=text name="fname" size=15 value="$fname"><br>
Enter Last Name: <input type="text" name="lname" size=15 value="$lname"><br>
Enter E-mail Adress: <input type="text" name="email" size=15 value="$email"><br>
Enter your age: <input type="text" name="age" size=3 value="$age"><br>
<input type=submit value="Submit Information" name="submit">
</form>
</body>
</html>
EndForm;
return $myform;
}

//test if first time script being called
if(!$submit)
{
print(display_form($myform));
exit();
}

//Test to see if user entered the mandatory information
if((!$fname) || (!$lname) || (!$email) || (!$age))
{

$message=<<<EndMessage
<h2 align=center><font color=green>Your registration was missing the following
information:</font></h2>
EndMessage;

//Display error message
print($message);

//Display list of missing data
if(!$fname)
{
print("<b>Your First Name</b><br>");
}
if(!$lname)
{
print("<b>Your Last Name</b><br>");
}

if (!$email)
{
print("<b>Your Email</b><br>");
}

if(!$age)
{
print("<b>Your Age</b><br>");
}

print("<b>Please make the necessary corrections:</b>");
print("</font></center>" . display_form($myform));


}

// EMAIL

if ($email)
{

//Display if email address has a minimum of characters

if ((strlen($email) >= 1) && (strlen($email) < 7))
{
print("Your e-mail address was only ".strlen($email)." character(s) long <br>");


}


// Display if email does not has an 'at' symbol
if (!strpos($email, "@"))
{
print("Your e-mail address was missing the \"@\" symbol<br>");
}


// Display if email does not has an '.' symbol

if (!strpos($email, "."))
{
print("Your e-mail address was missing the dot \".\" symbol<br>");
}

//Conclude the error message by redisplaying form with original values

print("<b>Please make the necessary corrections:</b>");
print("</font></center>" . display_form($myform));
exit();
}


//If all information was provided give thank you message

else
{

$message=<<<EndMessage
<p align=center>Thank you<br>You inserted the following information:<br>
Name: $fname $lname<br>
Email: $email<br>
Age: $age</p>
EndMessage;
print($message);

}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 23/12/2002, 15:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te recomendaria que empezases poco a poco .. primero a simplemente "usar un formulario" pasando X variables a un script.php q lo precese (sea en la misma página u otra .. para empezar seria mejor q fuese en otra) .. Ahí te familiarizas con las variables .. luego las validas ..

El codigo q usas es un poco lioso y deficiente a la hora de validar una cuenta de e-mail .. Lo ideal para estos casos que una variable tenga q seguir un formato dado es usa expresiones regulares .. ejemplo:

Código PHP:
if (!ereg("^([a-zA-Z0-9\._]+)\@([a-zA-Z0-9\.-]+)\.([a-zA-Z]{2,4})$",$_POST["email"])){
echo 
"error .. e-mail no correcto";

Para el campo edad .. yo te recomendaria que pidieses la fecha de nacimiento y q tu lógica de tu script calculase la edad. Si lo haces así podrias validar la fecha bastante bien .. ya no solo si es "numerico" o no .. sino si está dentro de los rangos que delimites (ademas que te servirá para presentar la edad de tus usuarios siempre actualizada) ...

Si quieres seguir como estas .. usa is_numeric() (o si quieres is_int() o is_integer() ) ....para validar ese campo q sea numerico ..

Usa el manual oficial de PHP, www.php.net/manual/es .. ahi tienes muchas funciones tipo is_xxx q las puedes aprovechar para la mayoria de validaciones de datos de variables .. Tambien revisa el tema de expresiones regulares para validaciones mas complejas como la de una direccion de e-mail y similares datos que han de respetar un formato dado.

Un saludo,
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:12.