Foros del Web » Programando para Internet » PHP »

sistema de usuarios

Estas en el tema de sistema de usuarios en el foro de PHP en Foros del Web. hola he creado un sistema de registro de usuarios y todo funciona perfectamente, la verda y por raro que parezca... bueno la cuestion es que ...
  #1 (permalink)  
Antiguo 09/01/2011, 12:27
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Pregunta sistema de usuarios

hola
he creado un sistema de registro de usuarios y todo funciona perfectamente, la verda y por raro que parezca... bueno la cuestion es que si meto el user o el pass equivocados me envia de nuevo al formulario de login, pero sin embargo si dejo ambos cuadros de texto vacios y hago submit se registra en el sistema y accede como administrador.

alguien sabe como se puede resolver este hecho tan insolito?
sldos,
  #2 (permalink)  
Antiguo 09/01/2011, 12:29
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: sistema de usuarios

Verifica que la variable no este vacia usando trim() y empty()

Código PHP:
Ver original
  1. if(empty(trim($_POST['campoUsuario']))) {
  2.   //Campo vacio, no proceder a login.
  3. }
  #3 (permalink)  
Antiguo 09/01/2011, 12:31
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: sistema de usuarios

Podrías validar, tipo:

Código PHP:
Ver original
  1. if( empty($_POST['nomUsuario'] && empty($_POST['claveUsuario'])) {
  2. echo 'Lo sentimos, el nombre de usuario y la clave no pueden estár vacíos :P';
  3. exit();
  4. }
Puedes acomodar eso como te plazca
  #4 (permalink)  
Antiguo 09/01/2011, 12:32
 
Fecha de Ingreso: diciembre-2009
Ubicación: dirname(__FILE__)
Mensajes: 149
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: sistema de usuarios

Ups! ya me habían ganado
  #5 (permalink)  
Antiguo 09/01/2011, 13:23
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: sistema de usuarios

lo he probado pero no me sale... donde deberia incorporar el codigo, en el fichero principal o bien en el que jecuta la consulta a la bbdd. Dejo copia del codigo

Código PHP:
<?
// conexion a la base de datos
include ('dbopen.php');
//verificamos que los valores no esten vacios
if (empty(trim($_POST["user"] && $_POST["pass"])))
    { 
header ("Location:/intranet/index.php?error=si");
    } else {
//recogemos los valores del formulario
$usuario $_POST["user"];
$password $_POST["pass"];

//si las variables no estan vacias proseguimos
//realizamos la consulta a la bbdd
$conectar "SELECT * FROM usuarios WHERE user = '$usuario' AND pass = '$password'";
$array mysql_query ($conectar);
$rows mysql_fetch_array ($array);


// redireccionamiento en funcion del resultado
if ( $password == $rows ["pass"]){
        
session_start ();
        
$autentificado "SI";
        
$_SESSION["autentificado"] = "SI";
        
$_SESSION["nombre"] = $rows["nombre"];
        
$_SESSION["level"] = $rows["level"];
        
header ("Location:/intranet/");
} else {
        
header ("Location:/intranet/index.php?error=si");
}
    }
?>
  #6 (permalink)  
Antiguo 09/01/2011, 13:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: sistema de usuarios

Código PHP:
Ver original
  1. if (empty(trim($_POST["user"] && $_POST["pass"])))

Estas pasandole 2 parametros a trim y empty usando &&.
Deberia ser:
if(empty(trim($_POST['user'])) && empty(trim($_POST['pass'])))
  #7 (permalink)  
Antiguo 09/01/2011, 17:31
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: sistema de usuarios

pues ya lo he probado como indicais pero sigue sin funcionar. adjunto el codigo, alguna idea?
Código PHP:
<?
// conexion a la base de datos
include ('dbopen.php');
//verificamos que los valores no esten vacios
//verificamos que los valores no esten vacios
if(empty(trim($_POST['user'])) && empty(trim($_POST['pass'])))
    { 
header ("Location:/intranet/index.php?error=si");
    } else { 
//recogemos los valores del formulario
$usuario $_POST["user"];
$password $_POST["pass"];

//si las variables no estan vacias proseguimos
//realizamos la consulta a la bbdd
$conectar "SELECT * FROM usuarios WHERE user = '$usuario' AND pass = '$password'";
$array mysql_query ($conectar);
$rows mysql_fetch_array ($array);


// redireccionamiento en funcion del resultado
if ( $password == $rows ["pass"]){
        
session_start ();
        
$autentificado "SI";
        
$_SESSION["autentificado"] = "SI";
        
$_SESSION["nombre"] = $rows["nombre"];
        
$_SESSION["level"] = $rows["level"];
        
header ("Location:/intranet/");
} else {
        
header ("Location:/intranet/index.php?error=si");
}
    }
?>
  #8 (permalink)  
Antiguo 09/01/2011, 17:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: sistema de usuarios

Disculpa, cometí un error en el código.

En vez de "&&" es "||"
  #9 (permalink)  
Antiguo 09/01/2011, 17:51
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: sistema de usuarios

sigue sin funcionar...crees que podría ser el tema del if dentro de otro. me refiero: el primer if chequea que los $_POST esten vacios, y si lo estan, que devuelva a origen; si no es asi (else), ejecuta la consulta a la bbdd, donde despues, para verificar el password hay otro if...podra ser eso??
  #10 (permalink)  
Antiguo 09/01/2011, 18:07
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: sistema de usuarios

Lo que pasa es que no recordaba que no se podia usar empty(trim($variable))
Quita el trim
  #11 (permalink)  
Antiguo 09/01/2011, 18:22
Avatar de floog  
Fecha de Ingreso: enero-2006
Mensajes: 191
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: sistema de usuarios

funciona¡¡
gracias

Etiquetas: usuarios, sitemap
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:31.