Cita:
Iniciado por maycolalvarez ajá, pero que tiene $errores_formulario, los arrays no se comparan así
Gracias por tu respuesta pero corregi el error de que no me salia nada pero luego no me lo compara bien, y el codigo casi igual es este:
Código PHP:
<?php
if($_POST["oculto"]) {
$errores_formulario = validar_formulario();
if ($errores_formulario) {
mostrar_formulario($errores_formulario);
}else {
procesar_formulario();
}
}else {
mostrar_formulario();
}
//Funciones
//La funcion de mostrar el formulario y si hay errores tambien
function mostrar_formulario($errores = '') {
//Si hay errores imprimirlos
if($errores) {
print "Porfavor corrige los siguientes errores: <ul><li>";
print implode("</li><li>", $errores);
print "</li></ul>";
}
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="Prueba_complicada.php">
<p>
<label for="nombre"></label>
Nombre*:
<input type="text" name="nombre" id="nombre" />
</p>
<p>
<label for="email"></label>
Email*:
<input type="text" name="email" id="email" />
</p>
<p>
<label for="mensaje"></label>
Mensaje*:
<input type="text" name="mensaje" id="mensaje" />
</p>
<p>
<label for="telefono"></label>
Telefono:
<input type="text" name="telefono" id="telefono" />
<input name="oculto" type="hidden" id="oculto" value="1" />
</p>
<p>
<input type="submit" name="button" id="button" value="Enviar" />
</p>
</form>
</body>
</html>
';
}
//La funcion de validar el formulario
function validar_formulario() {
//Empezar con un array vacio para añadir le luego si hay errores
$erroritos = array();
//Añadir mensaje de error si faltan campos para escribir
if(!empty($_POST["nombre"]) && isset($_POST["nombre"]) &&
!empty($_POST["email"]) && isset($_POST["email"]) &&
!empty($_POST["mensaje"]) && isset($_POST["mensaje"])) {
$erroritos[0] = "Rellena los campos obligatorio! El telefono no se entre ellos!";
if(empty($_POST["nombre"]) && !isset($_POST["nombre"]) &&
empty($_POST["email"]) && !isset($_POST["email"]) &&
empty($_POST["mensaje"]) && !isset($_POST["mensaje"])) {
//Si el telefono esta vacio continuara validando los demas campos porque no es obligatorio.
//Validar el telefono
if(empty($_POST["telefono"])) {
if(strlen($_POST["nombre"]) < 2) {
$erroritos[1] = "Nombre demasiado corto!";
}
//Validar el email con el patron para emails.
if(!preg_match("/^[^\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/")) {
$erroritos[2] = "Email no valido!";
}
//Validar el mensaje si es menos de 10 lineas.
if(strlen($_POST["mensaje"]) < 10) {
$erroritos[3] = "El mensaje no puede ser menos de 10 caracteres!";
}
//Validar el mensaje si es mas de 600 lineas.
if(strlen($_POST["mensaje"]) > 600) {
$erroritos[4] = "El mensaje no puede ser mas de 600 lineas!";
}
//Si el telefono tiene escrito validara el telefono con los demas campos.
} else {
if(preg_match("@^\d{9}$@", $_POST["telefono"])) {
$erroritos[5] = "Telefono no valido, aunque no es obligatorio.";
}
}
}
}
return $erroritos;
}
//Funcion para decir hola
function procesar_formulario() {
if($_POST["nombre"] && $_POST["email"] && $_POST["telefono"] && $_POST["mensaje"]) {
print "Hola " . $_POST["nombre"] . " con email: " . $_POST["email"] . " con telefono: " . $_POST["telefono"] . " ,creo el mensaje: <br />" . $_POST["mensaje"] ;
print "Gracias :)";
} elseif($_POST["nombre"] && $_POST["email"] && $_POST["mensaje"]) {
print "Hola " . $_POST["nombre"] . " con email: " . $_POST["email"] . " ,creo el mensaje: <br />" . $_POST["mensaje"] ;
print "Gracias :)";
}
}
?>
Como compararlos ??