Foros del Web » Programando para Internet » PHP »

manejo de sessiones en login en php

Estas en el tema de manejo de sessiones en login en php en el foro de PHP en Foros del Web. Buenas tardes quiciera saber si algun experto me puede decir si es correcto manejar las sessiones en un login de la siguiente manera: Código PHP: ...
  #1 (permalink)  
Antiguo 09/02/2012, 17:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 15 años
Puntos: 2
Pregunta manejo de sessiones en login en php

Buenas tardes quiciera saber si algun experto me puede decir si es correcto manejar las sessiones en un login de la siguiente manera:

Código PHP:
class login extends _GLOBAL_
 
{
     public function 
validarUsuario($usu,$pwd,$unidad){//Inicio sección validarUsuario
        
$usu mysql_escape_string($usu);
        
$pwd mysql_escape_string($pwd);
        
$unidad mysql_escape_string($unidad);
            
        
$this->conexion($unidad."_generalcms");
        
//consulta para validar el usuario
        
$consulta $this->consulta(sprintf("SELECT * FROM usuarios WHERE usuario = '".$usu."' LIMIT 1"));
          
//resultado de la consulta en un array
          
$resultado $this->fetch_array($consulta);
          if(
count($resultado) > 0){
              foreach(
$resultado as $row):
                if(
$row['pass'] == $row['pass']){
                  if(
$row['activo'] == "1"){
                    
$_SESSION['status'] = "autorizado";
                    
$_SESSION['unidad'] = $unidad;
                    
//$this->registroActividad("Inicio sesión");
                    
header("Location: cms.php");
                  }else{
                    return 
"Acceso denegado";  
                  }
                }else{
                  return 
"Acceso denegado";        
                }
              endforeach;
          }else{
              return 
"Acceso denegado";
          }
     }
//Fin sección validarUsuario
     
     
public function cerrarSesion(){//Inicio sección cerrarSesion
        //$this->registroActividad("Cerro sesión");
        
unset($_SESSION['status']);
        unset(
$_SESSION['unidad']);
        if(isset(
$_COOKIE[session_name()])){
            
setcookie(session_name,"",time() - 10000);
            
session_destroy();
        }
        
header("Location: index.php");
     }
//Fin sección cerrarSesion
 


De antemano gracias.
  #2 (permalink)  
Antiguo 09/02/2012, 19:08
Avatar de zarkiel  
Fecha de Ingreso: febrero-2012
Mensajes: 51
Antigüedad: 12 años, 2 meses
Puntos: 15
Respuesta: manejo de sessiones en login en php

Sería mejor que manejes todo en la consulta SQL, podrías hacerlo asi:

Código PHP:
Ver original
  1. $consulta = $this->consulta(sprintf("SELECT * FROM usuarios WHERE usuario = '".$usu."' AND pass='".$pwd."' AND activo=1 LIMIT 1"));

Si el resultado de la consulta es mayor que 0, entonces se le concede el acceso.

Código PHP:
Ver original
  1. $resultado = $this->fetch_array($consulta);
  2.           if(count($resultado) > 0){
  3.                $_SESSION['status'] = "autorizado";
  4.                     $_SESSION['unidad'] = $unidad;
  5.                     //$this->registroActividad("Inicio sesión");
  6.                     header("Location: cms.php");
  7.          }else{
  8.            return "Acceso denegado";  
  9.         }

Creo que estás utilizando mysqli, si es así el código podría optimizarse mucho más, bueno espero que te sirva
__________________
« Los deseos pueden hacerse realidad, pero no basta con esperar un milagro, el milagro lo hacemos nosotros... Aquí y ahora »

Etiquetas: login, manejo, mysql, registro, sesiones, usuarios
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 22:36.