Foros del Web » Programando para Internet » PHP »

Problema con return

Estas en el tema de Problema con return en el foro de PHP en Foros del Web. hola quetal tengo un serio problema que no he podido corregir y la verdad ya estoy cansado de tanto hacerle jeje creo que es algo ...
  #1 (permalink)  
Antiguo 10/12/2008, 19:47
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Pregunta Problema con return

hola quetal tengo un serio problema que no he podido corregir y la verdad ya estoy cansado de tanto hacerle jeje creo que es algo sencillo para ustedes
tengo una funcion que me sirve para validar los camps $_POST y me devulve false si es incorrecto y true si es correcto

aqui la funcion

Código PHP:
function validar($array)
{
    

foreach (
$array as $key=>$value)
{
    
$value=strip_tags($value);    
    if(empty(
$value) || !isset($value))
    {
    return 
false;
    }
    
}




aqui donde hago uso de la funcion

Código PHP:
if(validar($_POST)==false)
{
    
          
             
contenedor();
            
cabezera();
            
links();
            
contenido();
            
derecho();    
            echo 
"<h2>El formulario se encuentra incompleto porfavor intente llenando todos los datos</h2>"
            echo 
"<div id=\"cuadro_both\">";  //creal el cuadro de informacion
            
            
            
tabla_datos_proce($cedulae);
            
            echo 
"</div>";    //me cierra el cuandro_both;
            
            
corte();
            
fin();



  #2 (permalink)  
Antiguo 10/12/2008, 20:30
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema con return

if(validar($_POST)==false) no es la forma mas elegante.........

En function validar($array) deberias devolver tambien True (por el ELSE) porque sino quedas ligado al tipo de chequeo que haces mas arriba.

El porque no te funciona....... no estoy seguro
__________________
Salu2!

Última edición por Italico76; 10/12/2008 a las 20:36
  #3 (permalink)  
Antiguo 10/12/2008, 20:33
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Problema con return

Prueba esto

Código PHP:
foreach ($array as $key=>$value)
{
    
//Debes validar la existencia de la clave, no del valor
    
if(empty($value) || !isset($_POST[$key]))
    {
        return 
false;
    }
    else 
        return 
true;  //Haciendo caso al comentario de Italico

    
    

Saludos.

Última edición por pixel1; 10/12/2008 a las 20:34 Razón: Enriquecer un poco la respuesta
  #4 (permalink)  
Antiguo 10/12/2008, 20:44
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Problema con return

hola quetal ya lo arregle asi pero a un no me funciona


if(!validar($_POST))
{


contenedor();
cabezera();
links();
contenido();
derecho();
echo "<h2>El formulario se encuentra incompleto porfavor intente llenando todos los datos</h2>";
echo "<div id=\"cuadro_both\">"; //creal el cuadro de informacion


tabla_datos_proce($cedulae);

echo "</div>"; //me cierra el cuandro_both;

corte();
fin();


}

else if(validar($_POST))
{

extract($_POST);
$peticion=mysql_query("update empleados set cedula='$cedula', nombre='$nombre' where cedula='$cedulaa'");

contenedor();
cabezera();
links();
contenido();
derecho();
echo "<h3>Los datos fueron almacenados correctamente en la Base de datos</h3>";

corte();
fin();


}

/////// funcion

function validar($array)
{


foreach ($array as $key=>$value)
{
$value=strip_tags($value);
if(empty($value) || !isset($_POST[$key]))
{
return false;
}
else
{
return true;
}

}

}
  #5 (permalink)  
Antiguo 10/12/2008, 21:10
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema con return

Hola...... yo no te dije nada del algoritmo (ni como solucionarlo) sino como hacerlo mas claro.

Ahora has cambiado algo; fijate que comparabas por FALSE asi que debes negar aca:

else if(validar($_POST))

quedando asi:

else if(!validar($_POST)) // ! es un NOT
__________________
Salu2!
  #6 (permalink)  
Antiguo 10/12/2008, 21:12
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema con return

Otra cosa: como regla general,..... prueba la funcion aislada porque sino aislas donde puede estar el problema........ es dificil que lo encuentres.
__________________
Salu2!
  #7 (permalink)  
Antiguo 10/12/2008, 21:19
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Problema con return

como que aislarla? jeje no te entiendo
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 19:06.