Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/05/2012, 07:01
Avatar de patilanz
patilanz
 
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 4 meses
Puntos: 29
De acuerdo Respuesta: Un error grave

Cita:
Iniciado por maycolalvarez Ver Mensaje
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 ??