Foros del Web » Programando para Internet » PHP »

Problema login base de datos

Estas en el tema de Problema login base de datos en el foro de PHP en Foros del Web. Hola tengo un login en mi web hecho por mi pero no consigo hacer que la base de datos guarde a un solo user diferente, ...
  #1 (permalink)  
Antiguo 15/02/2011, 13:42
 
Fecha de Ingreso: febrero-2011
Ubicación: define ('Ubicación', 'Mi_casa');
Mensajes: 21
Antigüedad: 13 años, 3 meses
Puntos: 0
Problema login base de datos

Hola tengo un login en mi web hecho por mi pero no consigo hacer que la base de datos guarde a un solo user diferente, es decir si registro a kechu que cuando ponga en el registro otra vez kechu me salga usuario ya existente. Lo he intentado con codigo que encontre y cambie un poco pero ahora no me registra usuarios no se introduce en la BD. Lo quite y estoy como en el proncipio :S

Aqui esta register.php:

Código PHP:
<?php require("requires/header.php"); ?>
<?php

// archivos necesarios
require_once 'noticias/admin/config.php';
require_once 
'noticias/admin/conexion.php';
require_once 
'noticias/admin/esUsuario.php';

// obtengo puntero de conexion con la db
$dbConn conectar();

// si se envio el formulario
if ( !empty($_POST['submit']) ) {
    
    
// definimos las variables
    
if ( !empty($_POST['usuario']) )     $usuario     $_POST['usuario'];
    if ( !empty(
$_POST['password']) )    $password     $_POST['password'];
    if ( !empty(
$_POST['re-password']) )$rePassword $_POST['re-password'];
    if ( !empty(
$_POST['email']) )        $email        $_POST['email'];

           
    
// completamos la variable error si es necesario
    
if ( empty($usuario) )     $error['usuario']         = 'Es obligatorio completar el nombre de usuario';
    if ( empty(
$password) ) $error['password']         = 'Es obligatorio completar la contraseña';
    if ( empty(
$email) )    $error['email']            = 'Es obligatorio completar el email';
    if ( 
$_POST['password'] != $_POST['re-password'] ) {
        
$error['re-password'] = 'La contrase&ntilde;a no coincide';
      
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an (este es el codigo que encontre y luego quite)
            
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
            
$username_exist mysql_num_rows($checkuser);
            
            
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
             if (
$email_exist>0|$username_exist>0$error['usuario'] = 'Usuario o e-mail ya existente.';
    else{
    
// si no hay errores registramos al usuario
    
if ( empty($error) ) {
        
        
// inserto los datos de registro en la db
        
$query  "INSERT INTO `usuarios` (usuario,password,email) VALUES ('$usuario','".md5($password)."','$email')";
        
$result mysql_query($query$dbConn);
        
        
header'Location: index.php?registro=true' );
        die;
    
    }
        

}

            }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Blog Personal</title>
</head>

<body>

    <h1>Registro de Usuario</h1>
    
    <? if (!empty($error)) { ?>
        <ul>
        <? foreach ($error as $mensaje) { ?>
            <li><?= $mensaje ?></li>
        <? ?>
        </ul>
    <? }} ?>
    
    <form action="registrar.php" method="post">
    
        <p>
            <label for="usuario">Nombre de usuario</label><br />
            <input name="usuario" type="text" class="campos" value="<? if ( ! empty($usuario) ) echo $usuario?>" />
        </p>
        <p>
            <label for="password">Contrase&ntilde;a</label><br />
            <input name="password" type="password" class"campos" value="<? if ( ! empty($password) ) echo $password?>" />
        </p>
        <p>
            <label for="re-password">Repetir Contrase&ntilde;a</label><br />
            <input name="re-password" type="password" class="campos" value="<? if ( ! empty($rePassword) ) echo $rePassword?>" />
        </p>
        <p>
            <label for="email">Correo Electr&oacute;nico</label><br />
            <input name="email" type="text" class="campos" value="<? if ( ! empty($email) ) echo $email?>" />
        </p>
        <p>
            <input name="submit" type="submit" value="Reg&iacute;strate" />
        </p>
        
    </form>


</body>
</html>

<?php  require("requires/footer.php"); ?>
Espero que puedan ayudarme y gracias de antemano.
Saludos!
  #2 (permalink)  
Antiguo 15/02/2011, 16:49
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 11 meses
Puntos: 9
Respuesta: Problema login base de datos

Hola kechu, te comento que deberias de organizar mejor tu código porque tienes varios errores de llaves... Que es en escencia tu problema, ademas de que llamas a variables que no existen eje. $username...

Te dejo el corregido y checas las diferencias
Código PHP:
<?php require("requires/header.php"); ?> 
<?php 

// archivos necesarios 
require_once 'noticias/admin/config.php'
require_once 
'noticias/admin/conexion.php'
require_once 
'noticias/admin/esUsuario.php'

// obtengo puntero de conexion con la db 
$dbConn conectar(); 


// si se envio el formulario 
if ( !empty($_POST['submit']) ) 

     
    
// definimos las variables 
    
if ( !empty($_POST['usuario']) )     $usuario     $_POST['usuario']; 
    if ( !empty(
$_POST['password']) )    $password     $_POST['password']; 
    if ( !empty(
$_POST['re-password']) )$rePassword $_POST['re-password']; 
    if ( !empty(
$_POST['email']) )        $email        $_POST['email']; 

            
    
// completamos la variable error si es necesario 
    
if ( empty($usuario) )     $error['usuario']         = 'Es obligatorio completar el nombre de usuario'
    if ( empty(
$password) ) $error['password']         = 'Es obligatorio completar la contraseña'
    if ( empty(
$email) )    $error['email']            = 'Es obligatorio completar el email'
    if ( 
$_POST['password'] != $_POST['re-password'] ) 
        
$error['re-password'] = 'La contrase&ntilde;a no coincide'
      
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an (este es el codigo que encontre y luego quite) 
    
$checkuser mysql_query("SELECT * FROM usuarios WHERE usuario='$usuario'"); 
    
$username_exist mysql_num_rows($checkuser); 
     
    
$checkemail mysql_query("SELECT * FROM usuarios WHERE email='$email'"); 
    
$email_exist mysql_num_rows($checkemail); 
     if (
$email_exist>|| $username_exist>0$error['usuario'] = 'Usuario o e-mail ya existente.'

    
// si no hay errores registramos al usuario 
    
if ( empty($error) ) { 
         
        
// inserto los datos de registro en la db 
        
$query  "INSERT INTO usuarios (usuario,contrasenia,email) VALUES ('$usuario','".md5($password)."','$email')"
        
$result mysql_query($query$dbConn); 
         
        
header'Location: index.php?registro=true' ); 
        die; 
     
    } 
         



?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Blog Personal</title> 
</head> 

<body> 

    <h1>Registro de Usuario</h1> 
     
    <?php if (!empty($error)) { ?> 
        <ul> 
        <?php foreach ($error as $mensaje) { ?> 
            <li><?php echo $mensaje ?></li> 
        <?php ?> 
        </ul> 
    <?php }?> 
     
    <form method="post"> 
     
        <p> 
            <label for="usuario">Nombre de usuario</label><br /> 
            <input name="usuario" type="text" class="campos" value="<?php if ( ! empty($usuario) ) echo $usuario?>" /> 
        </p> 
        <p> 
            <label for="password">Contrase&ntilde;a</label><br /> 
            <input name="password" type="password" class"campos" value="<?php if ( ! empty($password) ) echo $password?>" /> 
        </p> 
        <p> 
            <label for="re-password">Repetir Contrase&ntilde;a</label><br /> 
            <input name="re-password" type="password" class="campos" value="<?php if ( ! empty($rePassword) ) echo $rePassword?>" /> 
        </p> 
        <p> 
            <label for="email">Correo Electr&oacute;nico</label><br /> 
            <input name="email" type="text" class="campos" value="<?php if ( ! empty($email) ) echo $email?>" /> 
        </p> 
        <p> 
            <input name="submit" type="submit" value="Reg&iacute;strate" /> 
        </p> 
         
    </form> 


</body> 
</html> 
<?php  require("requires/footer.php"); ?>
Saludos
  #3 (permalink)  
Antiguo 15/02/2011, 18:28
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
Tema movido desde Configuración PHP a PHP
  #4 (permalink)  
Antiguo 16/02/2011, 09:54
 
Fecha de Ingreso: febrero-2011
Ubicación: define ('Ubicación', 'Mi_casa');
Mensajes: 21
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Problema login base de datos

Ok muchas gracias ya me funciona.
Que fallo más tonto xD. Intentaré hacer más detenidamente a partir de ahora mis codigos...
Muchas gracias nuevamente y saludos!

Etiquetas: login
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 21:47.