Ver Mensaje Individual
  #20 (permalink)  
Antiguo 07/11/2015, 23:00
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: No se mantenie info de $_SESSION por que?

mira este codigo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. //conexion
  4. require_once('../xxxxxxxxxx/xxxxxxxxx.php');
  5.  
  6. if($_POST['usuario']==""){
  7.     $msg = "";
  8. } else if($_POST['password']==""){
  9.     $msg = "";
  10. }else{
  11.    
  12. //asignamos la variable usuario
  13. $usuario = mysqli_real_escape_string($db, $_POST['usuario']);
  14.  
  15. //buscamos los datos en la base basados en el usuario que se conecta
  16. $users = $db->query("SELECT usuario,pass,estados FROM usuarios WHERE usuario ='$usuario'");
  17.  
  18.  
  19. $row_result = $users->fetch_array();
  20.  
  21. //encriptamos la clave que recibimos y la asignamos a una variable para su posterior comparación
  22. $password = (crypt($_POST['password'], $row_result['pass']));
  23.  
  24. //asignamos las variables basadas en lo recogido de la consulta
  25. $usuario = $row_result['usuario'];
  26. $clave = $row_result['pass'];
  27. $nivel = $row_result['nivel'];
  28.  
  29. comparamos la clave con la almacenada y si el usuario esta activo
  30.  if($clave == $password && $estados == "Activo"){
  31.      
  32. //si todo esta bien creo las variables de sesion que usare en toda mi aplicacion
  33.      $_SESSION['MM_Username'] = $usuario;
  34.      $_SESSION['logueado'] = true;
  35.      $_SESSION['nivel'] = $nivel;
  36.  
  37. //envio un email de confirmacion de conexion al usuario
  38.      //se compone el mensaje
  39.     require("recursos/class.phpmailer.php");
  40.     $mail = new PHPMailer();
  41.     $mail->From = "[email protected]";
  42.     $mail->FromName = "INFORME xxxxxxxxx";
  43.     $mail->Subject = "Nueva conexion de ".$nombre." a PSSLpro";
  44.     $mail->AddAddress($usuario, $nombre);
  45.     $mail->IsHTML(true);
  46.     $mail->AddEmbeddedImage('img/logo_xxxxx_xxxxx_peq.png', 'logo');
  47.    
  48.     $body = "<img src='cid:logo' alt='mail image' width='180px' height='40px' border='0'/><br><hr>";
  49.     $body .= "Nueva Conexión al sistema xxxxxxx con exito <b>".$nombre."</b>\n\n";
  50.     $body .= "<hr>";
  51.     $body .= "Fecha de la conexión: ".date("d-m-Y")."\n\n";
  52.     $body .= " hora de la conexion ".date("H:m:s")."\n\n";
  53.     $body .= "Desde la ip: ".$_SERVER['REMOTE_ADDR']."\n\n";
  54.     $body .= "<hr>";
  55.     $mail->Body = $body;
  56.     $mail->Send();
  57.    
  58. //inserto en la tabla de contro que el usuario esta activo en el sistema
  59.     $fecha = date("Y-m-d");
  60.     $hora = date("H:m:s");
  61.     $activos = $db->query("INSERT INTO usuarios_activos (usuario, fecha, hora, ip, rif, unidad_explot) VALUES ('$usuario' , '$fecha' , '$hora' , '$_POST[ip]' , '$rif' , '$unidad')");
  62.  
  63. //lo redirecciono al escritorio
  64.      header('location: escritorio.php');
  65.  
  66. //si esta suspendido lo envio a otra locacion
  67.  } else if($estados == "Suspendido"){
  68.     header('location: suspendido.php');
  69.  
  70. //en caso contrario le indico que los datos son invalidos
  71.         }else{
  72.      $msg = "Datos inválidos";
  73.  }
  74. }
  75. ?>

y en cada pagina solo tengo esto:

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.      
  4.     if (isset($_SESSION['MM_Username']) && $_SESSION['logueado'] == true && $_SESSION['estados']== "Activo")
  5.     {
  6.     }
  7.     else
  8.     {
  9.         header('Location:/app/error_acceso.php');
  10.    
  11. //en caso de que se salte el header por alguna extraña razon, muestro los mensajes
  12.    
  13. echo "<br/>" . "Esta pagina es solo para usuarios registrados." . "<br/>";
  14.    
  15. echo "<br/>" . "<a href='index.php'>Ingresa aqui!!!</a>";
  16.      
  17.     exit;
  18.     }
  19.     ?>

este codigo es mucho mas extenso y con muchas mas variables de sesion pero solo te coloque lo basico que funciona bastante bien, ya solo queda jugar con el resto amigo
__________________
[email protected]
HITCEL