Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Tengo dos páginas: login.php e index.php (primero se pasa por login y luego por índex). En el login se generan unas variables de la sesión ...
  #1 (permalink)  
Antiguo 03/11/2015, 10:47
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Problema con sesiones

Tengo dos páginas: login.php e index.php (primero se pasa por login y luego por índex). En el login se generan unas variables de la sesión y, donde tengo el print_r, se muestra el array completo y perfecto. Sin embargo, al pasar automáticamente al index.php todo el array se vacía. ¿Por qué? (NOTA: En localhost va bien pero en mi servidor se vacía (es un hosting 1&1)
login.php

Código PHP:
Ver original
  1. <html>
  2.     <head>
  3.         <title>Entrando...</title>
  4.         <meta charset="utf-8"/>
  5.     </head>
  6. </html>
  7. <?php
  8. /* 1. Incorporamos los valores de usuario y contraseña */
  9.     $NombreUsuario = $_POST['NombreUsuario'];
  10.     $ClaveUsuario = $_POST['ClaveUsuario'];
  11. /* 2. Conectar a la base de datos */
  12.     include('conexion.php');
  13. /* 3. Creamos una consulta */
  14.     $Query_string = "SELECT * FROM Usuarios WHERE NombreUsuario='".$NombreUsuario."'";
  15. /* 4. Ejecutar la consulta */
  16.     $MyQuery = $MyConnect->query($Query_string);
  17. /* 5. 'Fetch'-amos ese query */
  18.     $MyFetch = $MyQuery->fetch_assoc();
  19. /* 6. Vamos a comprobar si la contraseña es correcta */
  20.     if ($MyFetch['ClaveUsuario'] == $ClaveUsuario){
  21.         session_start();
  22.         $_SESSION['IDUsuario'] = $MyFetch['ID'];
  23.         $_SESSION['NombreUsuario'] = $MyFetch['NombreUsuario'];
  24.         $_SESSION['ClaveUsuario'] = $MyFetch['ClaveUsuario'];
  25.         $_SESSION['RolUsuario'] = $MyFetch['RolUsuario'];
  26.         $_SESSION['NombreCompletoN'] = utf8_encode($MyFetch['NombreCompleto-N']);
  27.         $_SESSION['NombreCompletoA1'] = utf8_encode($MyFetch['NombreCompleto-A1']);
  28.         $_SESSION['NombreCompletoA2'] = utf8_encode($MyFetch['NombreCompleto-A2']);
  29.         print_r($_SESSION);
  30.         echo '<meta http-equiv="refresh" content="3;URL=index.php"/>';
  31.     }else{
  32.         /* 6.2. Si es incorrecta volvemos al login con un mensaje de error mediante la variable errorID */
  33.         echo '<meta http-equiv="refresh" content="0;URL=../index.php?errorID=1"/>';
  34.     }
  35. ?>
index.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Mi plataforma educativa</title>
  4. <link rel="stylesheet" href="../styles/styles.css"/>
  5. <meta charset="utf-8"/>
  6. </head>
  7. <body>
  8. <?php
  9. // Incluimos el head
  10. include('head.php');
  11. // Incluimos la columna izquierda del tipo de usuario determinado
  12. include('Cols/'.$_SESSION['RolUsuario'].'/ColIzq.php');
  13. // Si el usuario es supervisor también ponemos la derecha
  14. if ($_SESSION['RolUsuario'] == 4){
  15.     include ('Cols/4/ColDch.php');
  16. }
  17. ?>
  18. </body>
  19. </html>
  #2 (permalink)  
Antiguo 03/11/2015, 10:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con sesiones

Las llamadas a session_start() así como muchas otras cosas deben hacerse antes de cualquier tipo de salida, y tu precisamente caes en ese error.

En tu localhost "funciona" porque tiene más configurado tu ambiente, y jamás deberías asumir que va a funcionar bien en todas partes.

Por favor lee el manual de sesiones al respecto: http://www.php.net/manual/es/book.session.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cookies, login, sesiones, sql
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 15:36.