Foros del Web » Programando para Internet » PHP »

funcion que no va...

Estas en el tema de funcion que no va... en el foro de PHP en Foros del Web. Por que esta funcion no muestra el segundo echo: "echo "existe_usuario despues de entrar en la comparacion: ".$existe_usuario."<br>";" Código PHP: function  unicidad_datos () { $conexion  ...
  #1 (permalink)  
Antiguo 22/02/2008, 06:02
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
funcion que no va...

Por que esta funcion no muestra el segundo echo:
"echo "existe_usuario despues de entrar en la comparacion: ".$existe_usuario."<br>";"


Código PHP:
function unicidad_datos()
{

$conexion conectar("localhost","root","","golftdb");

$usuario $_POST['usuario'];
$contraseña $_POST['password'];
$nombre $_POST['nombre'];
$apellidos $_POST['apellidos'];
$residencia $_POST['direccion'];
$ciudad $_POST['ciudad'];
$pais $_POST['pais'];
$cp $_POST['cp'];
$email $_POST['e-mail'];
$sexo $_POST['sexo'];

$sqlmysql_query("SELECT usuario FROM usuarios WHERE 1",$conexion);
$existe_usuario0;

echo 
"existe_usuario antes de entrar en la comparacion: ".$existe_usuario."<br>";

while (
$row mysql_fetch_array($sql)){
    if(
$row['usuario'] == $usuario){
    echo 
"Usuario encontrado: ".$row['usuario']."<br>";
    
$existe_usuario 1;
    return 
$existe_usuario;
    }else{
        
$existe_usuario=0;
        return 
$existe_usuario;
        }
}

echo 
"existe_usuario despues de entrar en la comparacion: ".$existe_usuario."<br>";


        
$sqlmysql_query("SELECT email FROM usuarios WHERE 1",$conexion);

while (
$row mysql_fetch_array($sql)){
    if(
$row['e-mail'] == $email){
    echo 
"E-mail encontrado: ".$row['e-mail']."<br>";
    
$existe_email=true;
    break;
    }else
        
$existe_email=false;
}


  #2 (permalink)  
Antiguo 22/02/2008, 06:53
 
Fecha de Ingreso: junio-2007
Ubicación: por ahi
Mensajes: 262
Antigüedad: 16 años, 10 meses
Puntos: 4
Re: funcion que no va...

El return no deja que la funcion llegue hasta esa linea
  #3 (permalink)  
Antiguo 22/02/2008, 10:34
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: funcion que no va...

Vale, ya he quitado el return, pero para luego poder utilizar dicha variable en otra funcion, hay que declararla como global???$GLOBLALS??o como va...es que aun ejecutando esta funcion dentro de otra, luego al mostrar por pantalla dicha variable en la otra funcion está vacía....

form_funciones.php:


Código PHP:
function valida_formulario()                // Funcion que hace la validacion de los campos introducidos en el formulario
{
echo 
"Usuario: ".$_POST['usuario']."<br>";
echo 
"Contraseña: ".$_POST['password']."<br>";
echo 
"e-mail: ".$_POST['e-mail']."<br>";

unicidad_datos();

echo 
"existe_usuario despues de salir de la funcion: ".$existe_usuario."<br>";

if (empty(
$_POST['usuario']))
    {
    echo 
"El campo Usuario es obligatorio\n";
    return 
0;
    }
    else if(empty(
$_POST['password']))
        {
        echo 
"El campo Contraseña es obligatorio\n";
        return 
0;
        }     
        else if(empty(
$_POST['nombre']))
            {
            echo 
"El campo Nombre es obligatorio\n";
            return 
0;
            }        
                else if(empty(
$_POST['e-mail']))
                    {
                    echo 
"El campo email es obligatorio\n";
                    return 
0;
                    }        
                    else if(
$_POST['password']!=$_POST['repassword'])
                        {
                        echo 
"Repita la contraseña correctamente";
                        return 
0;
                        }
                        else if(
$existe_usuario == 1){
                                echo 
"El nombre de usuario introducido ya existe en nuestra base de datos";
                                return 
0;
                                }
                                else if (
$existe_email == true){
                                        echo 
"El email introducido ya está siendo usado por otro usuario";    
                                        return 
0;
                                }        
    else                                            
//El formulario se ha cumplimentado correctamente
        
{
        
$headers "From: [email protected] \r\n";
        
mail($_POST['e-mail'],"Nuevo Usuario Golftarjeta.com","Su cuenta se ha creado con exito",$headers);
        echo 
"Formulario cumplimentado correctamente\n";
        
        
guardar_usuario();
        
        }
}                                                    
// Fin funcion que valida el formulario 
Podeis ayudarme por favor!!??
  #4 (permalink)  
Antiguo 22/02/2008, 10:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: funcion que no va...

O en dado caso puedes poner al FINAL de la función el return $existe_usuario para poderlo leer luego:
Código PHP:
function unicidad_datos() {
      
// todo tu codigo
      // al final:
      
return $existe_usuario;
}
$existe unicidad_datos(); 
Saludos.
  #5 (permalink)  
Antiguo 22/02/2008, 11:06
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: funcion que no va...

Muy bien gracias, tambien me gustaría poder examinar en esa misma funcion que no exista el email introducido en el formulario, podría devolver un array con el par clave-valor email-->1 o 0 dependiendo si existe o no y usuario-->1 o 0...???
  #6 (permalink)  
Antiguo 22/02/2008, 11:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: funcion que no va...

Así es podrías regresar un arreglo:
Código PHP:
return array( $existe_mail$mail ); 
Luego lo lees:
Código PHP:
list( $existe$email ) = unicidad_datos(); 
Saludos.
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 16:27.