Foros del Web » Programando para Internet » PHP »

error de novato...

Estas en el tema de error de novato... en el foro de PHP en Foros del Web. Hola estoy haciendo un formulario, donde al enviar los datos, controlo lo tipico, que el nombre de usuario y el email no esten en la ...
  #1 (permalink)  
Antiguo 22/02/2008, 05:26
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
error de novato...

Hola estoy haciendo un formulario, donde al enviar los datos, controlo lo tipico, que el nombre de usuario y el email no esten en la base de datos, que los campos obligatorios esten cumplimentados, que la contraseña se repita igual...pero no me funciona correctamente a la hora de comprobar si el nombre de usuario introducido existe o no en la bd, tiene que ser un error de persistencia de variables, porque controlo el valor de esta al salir y entrar en la funcion, y cuando sale no tiene valor...asi que a ver si me podeis solucionar el problema...esta es la funcion...

db_funciones.php:

Código PHP:
function unicidad_datos()
{

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

$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>";

luego en otro archivo (form_funciones.php) utilizo el valor de $existe_usuario, y me lo devuelve como vacío, cuando dentro de ese archivo he llamado a la funcion unicidad_datos...está ahi el fallo??
Todas estan funciones estan dentro de un mismo archivo que tengo como contenedor de funciones cont_funciones.php que incluyo en los archivos que forman parte de la web con require_once("cont_funciones.php")...
Perdon si no me he explicado bien, pero es que llevo 2 dias con esto liao, y necesito terminarlo ya....gracias de antemano!!
  #2 (permalink)  
Antiguo 22/02/2008, 05:29
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: error de novato...

Habia un error en un else que no estaba entre llaves, pero no es eso lo que hace que no funcione...os copio y pego el codigo completo...

db_funciones.php:

Código PHP:
<?

function conectar($servidor$usuario$password$base_datos)    //funcion que conecta a la base de datos
{
if (!(
$link=mysql_connect($servidor$usuario$password))){
    exit();
    }
if(!(
mysql_select_db($base_datos$link))){
    exit();
    }
return 
$link;
}

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>";


/*if ($sql_usuario == $usuario){
    echo "sql no es vacia, luego existe un usuario con el mismo nombre<br>";
    $existe_usuario = true;
    }else{
        echo "es vacia"."<br>";
        $existe_usuario = false;
        }
*/        
$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;
}

}
function 
guardar_usuario()
{

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


        
if ((
$existe_usuario false) && ($existe_email false)){
        
$sql mysql_query("INSERT INTO usuarios (usuario,passwd,nombre,apellidos,residencia,cp,email) VALUES ('$usuario','$contraseña','$nombre','$apellidos','$residencia','$cp','$email')",$conexion);
        echo 
"El usuario se ha registrado en la base de datos";
        }

}
?>
  #3 (permalink)  
Antiguo 22/02/2008, 05:30
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: error de novato...

form_funciones.php:


Código PHP:
<?
}                                            // Fin funcion formulario
function valida_formulario($existe_usuario)                // 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>";

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
  #4 (permalink)  
Antiguo 22/02/2008, 05:32
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: error de novato...

Todo esto lo incluyo en este archivo que valida el envio del formulario:
envio_registro.php

Código PHP:
<?
require_once("cont_funciones.php");

do_html_header();

estructura_cuerpo();

cuadro_login();
imagenes();
$dato=2;
contenido($dato);
do_html_footer();
?>
  #5 (permalink)  
Antiguo 22/02/2008, 05:34
 
Fecha de Ingreso: junio-2007
Ubicación: Cádiz
Mensajes: 369
Antigüedad: 16 años, 10 meses
Puntos: 7
Re: error de novato...

Donde la funcion contenido es la que varia la informacion que aparece en la web dependiendo la opcion que pulsemos:

estructura.php:

....
....
Código PHP:
function contenido($dato)    // Inicio FUNCION QUE MUESTRA EL CONTENIDO EN EL CENTRO DE LA PAGINA

?>
    <td valign="top"><br>
<?
    
if ($dato == 0){
?>
<p class="ta11b" style="text-align:center;">
<? echo "Logeese o cree una cuenta nueva";?>
</p>
<?    }    
    else if (
$dato == 1)
            
formulario();
        
        else if (
$dato == 2)
            
unicidad_datos();
            
valida_formulario($existe_usuario);
?>
    <!--#include file="includes/tarjeta.htm" --></td>
  </tr>
</table>
<?
}
....
....
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 14:19.