Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2012, 10:44
Andress_mdq92
 
Fecha de Ingreso: abril-2012
Mensajes: 36
Antigüedad: 12 años
Puntos: 1
Login de usuario

Hola gente. Tengo un pequeño problema que no entiendo.

Me dijeron que haga de tarea del curso que estoy haciendo de programacion PHP, una pagina para registrar usuarios, y una para loguearse.

Ahora, a la hora de loguearse va todo bien, pero tengo que poner que entre si el usuario esta defiinido como activo, cosa que no hace y me devuelve a la pagina de login.

Este es el codigo de registro de usuario nuevo.

Código PHP:
Ver original
  1. <?php
  2. $error=array();
  3. //validacion
  4. if(strlen($_POST['user'])<6){
  5.     $error['user']="si";
  6. }else{
  7.     $usuario=strtoupper($_POST['user']);
  8. }
  9. if(strlen($_POST['pass'])<6){
  10.     $error['pass']="corta";
  11. }else{
  12.     if($_POST['pass']==$_POST['confirm']){
  13.         $contraseña=$_POST['pass'];
  14.     }else{
  15.         $error['pass']="distinta";
  16.     }
  17. }
  18. //cierre validacion
  19.  
  20. if(count($error)>0){
  21.     if($error['user']=="si"){
  22.         echo "El nombre de usuario tiene que tener al menos 6 caracteres</br>";
  23.     }
  24.     if($error['pass']=="corta"){
  25.         echo "La contraseña debe tener al menos 6 caracteres</br>";
  26.     }
  27.     if($error['pass']=="distinta"){
  28.         echo "Las contraseñas deben ser iguales</br>";
  29.     }
  30.     echo "Completa los datos correctamente para registrarte";
  31. }else{
  32.     if(file_exists("base.txt")){
  33.     $base=unserialize(file_get_contents("base.txt"));
  34. }else{
  35.     $base=array();
  36. }
  37. $registro=array();
  38. $usuario=$_POST['user'];
  39. $contraseña=$_POST['pass'];
  40. $registro['user']=$usuario;
  41. $registro['pass']=$contraseña;
  42. $registro['activo']="si";
  43. $base[]=$registro;
  44.  
  45. file_put_contents("base.txt",serialize($base));
  46. echo "¡Usuario registrado con exito!";
  47. }
  48.  
  49. ?>

Y este es el codigo de login

Código PHP:
Ver original
  1. <?php
  2. $usuario=strtoupper($_POST['loguser']);
  3. $contraseña=$_POST['logpass'];
  4.  
  5. if(file_exists("base.txt")){
  6.     $base=unserialize(file_get_contents("base.txt"));
  7. }else{
  8.     $base=array();
  9. }
  10.  
  11. foreach($base as $registro){
  12.     if($registro['user']==$usuario and $registro['pass']==$contraseña){
  13.         if($registro['activo']=="si"){
  14.         header("location:mensajes.php");
  15.         exit();
  16.         }else{
  17.             echo "La cuenta se encuentra deshabilitada por inactividad";
  18.             exit();
  19.         }
  20.     }else{
  21.             header("location:index.php");  
  22.             }
  23.         }
  24. ?>

Quitando la parte de usuario activo me puedo loguear perfectamente, pero cuando agrego

if($registro['activo']=="si"){

Me devuelve siempre a login.php