Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/10/2016, 09:50
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años, 3 meses
Puntos: 6
Respuesta: $_SESSION 'level' en PHP 7

Cita:
Iniciado por xerifandtomas Ver Mensaje
Empecemos por lo básico. Haz un print_r a $_SESSION y enseñanoslo para ver que tenemos.

Código PHP:
Ver original
  1. <?php
  2. echo '<pre>';
  3. print_r ( $_SESSION );
  4. echo '</pre>';
  5.  
  6. /* RESTO DEL CÓDIGO */

Por qué el error a lo mejor no está en lo que nos muestras, puede que no se estén creando bien las variables de sesión.


Hola xerifandtomas, este es el codigo:


Aqui el codigo LOGIN

Código PHP:
Ver original
  1. <?php
  2. // Conexión a la base de datos
  3. include_once('Conexion.php'); // Coneción
  4. // Tomar el valor de la entrada
  5. $user = $_POST['user'];
  6. $userpass = md5($_POST['userpass']);
  7. // Utilizar mysql_real_escape_string para evitar la inyección sql
  8. $user = mysqli_real_escape_string($conexion, $user);
  9. $userpass = mysqli_real_escape_string($conexion, $userpass);
  10. // Comprobar en la base de datos si se introduce el usuario o no
  11. $query = "SELECT * FROM LISTUNIC WHERE user = '$user' && userpass = '$userpass'";
  12. $queryLogin = mysqli_query($conexion, $query);
  13. // Captura de datos
  14. $data = mysqli_fetch_array($queryLogin);
  15. // Si se introduce una consulta usuario/correcto existente
  16. if(mysqli_num_rows($queryLogin) == 1){
  17.  
  18.     // Crear el registro, el usuario se registra tiene el nivel
  19.     if ($data['level'] == 'Administrador') { // if ($data['level'] == 1) {
  20.     // El usuario se registra el nivel de administrador, va a la página de administración de usuario
  21.  
  22.         // Inicio de sesión
  23.         session_start();
  24.         // Período de sesiones para el nombres de usuario
  25.         $_SESSION['user'] = $data['user'];
  26.         // Nivel de sesión, para comprobar en las siguientes páginas
  27.         $_SESSION['listaid'] = $data['listaid'];
  28.         $_SESSION['level'] = $data['level'];
  29.         $_SESSION['nombres'] = $data['nombres'];
  30.         $_SESSION['apellidos'] = $data['apellidos'];
  31.         // Redirigir a la página de administración
  32.         header('location:admin/index.php'); // Session para Administrador
  33.     }
  34.     else{
  35.         // El usuario está conectado nivel 2, significa que el usuario normal no tiene acceso de administrador
  36.         // Inicio de sesión
  37.         session_start();
  38.         // Período de sesiones para el nombres de usuario
  39.         $_SESSION['user'] = $data['user'];
  40.         // Nivel de sesión, para comprobar en las siguientes páginas
  41.         $_SESSION['listaid'] = $data['listaid'];
  42.         $_SESSION['level'] = $data['level'];
  43.         $_SESSION['nombres'] = $data['nombres'];
  44.         $_SESSION['apellidos'] = $data['apellidos'];
  45.         // Redirigir a la página de administración
  46.         header('location:admin/index.php'); // Session para Invitado
  47.     }
  48. }
  49. else{
  50.     // Si el nombre de usuario y la contraseña es incorrecta o el usuario no está disponible, enviar un mensaje de error
  51.     header('location:index.php?msj=mmm');
  52. }
  53. ?>

Antes de cambiar a php7 funcionaba todo bien de este modo:
pero ahora ya no.

Código PHP:
Ver original
  1. <table><tr>
  2.    
  3.    <?php
  4.    if ($_SESSION['level'] == 'Administrador')    {    ?>
  5.    <td> C. Operacion </td>
  6.    <?php  } ?>
  7.  
  8.    <?php
  9.    if ($_SESSION['level'] == 'Invitado')    {  // Invitado   ?>
  10.    <td> C. Informacion </td></tr>
  11.    <?php  } ?>
  12.  
  13.    <?php
  14.    if ($_SESSION['level'] == 'Administrador')    {     ?>
  15.    <tr> <td><a href='I.php'>Link 1  UNO</a></td>  
  16.    <?php  } ?>
  17.  
  18.    <?php
  19.    if ($_SESSION['level'] == 'Invitado')    {   // Invitado  ?>
  20.    <td><a href='C.php'>Link 2  DOS</a></td>
  21.    <?php  } ?>