Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/09/2013, 22:54
Avatar de KATHYU
KATHYU
 
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 9 meses
Puntos: 46
Respuesta: Problema con Sesiones en el mismo "Server"

Cita:
Iniciado por GatorV Ver Mensaje
Para PHP no existen "sistemas", aunque los cambies de carpeta son scripts PHP, por lo que si usas el nombre de sesión por defecto, es por eso que se "comparten".

La forma correcta de diferenciar los nombres es así usando session_name para que cada "sistema" tenga un nombre de sesión independiente y no exista colisión de nombres de variables.

Saludos.
Excelente buscare la forma correcta de implementar la sesion_name()

Y aca esta (realmente busque muy rapido )

Basicamente mi manejo de sesiones es:

Código PHP:
Ver original
  1. <?php
  2.     session_start();
  3.     include('c.php');
  4.     if($_SESSION['tipo_usu']=='1' or $_SESSION['tipo_usu']=='2'){
  5.         // Que haga lo que tiene que hacer
  6.        }
  7.    // Si no le pongo un error que dice que no tiene privilegios.
  8.         else {
  9.             header('location:../error.php');
  10.         }
  11. ?>

Busque y haye dos soluciones, la primera es normal; es cuestion de agregar el nombre de mi sesion y poner el nombre de la sesion siempre antes de session_start():

Código PHP:
Ver original
  1. session_name('nombre'); //Debo poner esta linea a todos los archivos que manejen sesiones ???
  2.     session_start();
  3.     include('c.php');
  4.     if($_SESSION['tipo_usu']=='1' or $_SESSION['tipo_usu']=='2'){
  5.         // Que haga lo que tiene que hacer
  6.        }
  7.    // Si no le pongo un error que dice que no tiene privilegios.
  8.         else {
  9.             header('location:../error.php');
  10.         }
  11. ?>


La segunda es hacer un archivo config.ini de esta forma:

Código:
name = kosys
Y llamarlo con php y de paso encriptarlo con sha1:

Código PHP:
Ver original
  1. $config = parse_ini_file( 'config.ini' );
  2.     session_name( sha1( $config['name'] ) ); //Debo poner esta linea a todos los archivos que manejen sesiones ??
  3.     include('c.php');
  4.     if($_SESSION['tipo_usu']=='1' or $_SESSION['tipo_usu']=='2'){
  5.         // Que haga lo que tiene que hacer
  6.        }
  7.    // Si no le pongo un error que dice que no tiene privilegios.
  8.         else {
  9.             header('location:../error.php');
  10.         }
  11. ?>

Cual forma creen que deba poner en practica, la dos estaria bien ???

PD: la pregunta de la linea comentada es: Debo poner esa linea en todos los archivos que manejen sesiones ??

Gracias a todos
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.