Foros del Web » Programando para Internet » PHP »

Problema con Session

Estas en el tema de Problema con Session en el foro de PHP en Foros del Web. Hola! Tengo un problema bastante grande. Uso session para iniciar sesión en mi web, algo normal, con ayuda de este detecto si el usuario está ...
  #1 (permalink)  
Antiguo 07/09/2011, 16:14
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Problema con Session

Hola!

Tengo un problema bastante grande.

Uso session para iniciar sesión en mi web, algo normal, con ayuda de este detecto si el usuario está logueado o no. De ser correcto, le dejo pasar a una carpeta donde está el resto de la web, de lo contrario lo llevo a la portada para que inicie sesión.

Hasta ahora todo bien, pero se me ocurrió crear un subdominio para el resto de la web, ya que es beta privada y me parecía feo que se viese el nombre de la carpeta.

El caso es que, evidentemente si me logueo en el dominio, cuando me detecta me lleva al subdominio, y en este no estoy logueado. Este me lleva al dominio y así en un ciclo vicioso que hace que el navegador suelte error tras no soportar tanto redireccioamiento.

Se les ocurre algún modo para que se pueda loguear en ambos. La cosa es que desde el dominio te loguees, no desde el subdominio.



Gracias y un Saludo ;)
__________________
Shaito Hiraga - Diseñador CSS
  #2 (permalink)  
Antiguo 07/09/2011, 16:23
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con Session

Lee sobre está función:

session_set_cookie_params

saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 07/09/2011, 16:30
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Problema con Session

Hola

En el momento de hacer la redirección, considero que la haces con un header("Location"), podes poner algo asi.

Código PHP:
if ($logueado === true){ // si se loguea en el dominio
    
header("Location: htttp://subdominio.dominio.com/index.php?logeado=1&usuario='".$_SESSION['usuario']."'");

En el index de tu subdominio o al archivo a donde vayas a redirigir luego de loguearte e en tu dominio colocas lo siguiente

Código PHP:
session_start();

if (
$_REQUEST['logeado'] === 1){
    
$_SESSION['usuario'] = $_REQUEST['usuario'];

Espero te sirva.
Saludos
  #4 (permalink)  
Antiguo 07/09/2011, 17:30
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con Session

Te interesa sobre todo el tercer parámetro esa la función session_set_cookie_params

Cita:
domain
Dominio de la cookie, por ejemplo 'www.php.net'. Para hacer las cookies visibles en todos los sub-dominios, el dominio debe ser prefijado con un punto, como '.php.net'.
Te dejo un ejemplo del manual:

Código PHP:
Ver original
  1. <?php
  2. $currentCookieParams = session_get_cookie_params();
  3.  
  4. $rootDomain = '.example.com';
  5.  
  6.     $currentCookieParams["lifetime"],
  7.     $currentCookieParams["path"],
  8.     $rootDomain,
  9.     $currentCookieParams["secure"],
  10.     $currentCookieParams["httponly"]
  11. );
  12.  
  13. session_name('mysessionname');
  14.  
  15. setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain);
  16. ?>

Así se pueden manejar en subdomonios. Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 08/09/2011, 04:35
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Respuesta: Problema con Session

Cita:
Iniciado por equality_211085 Ver Mensaje
Hola

En el momento de hacer la redirección, considero que la haces con un header("Location"), podes poner algo asi.

Código PHP:
if ($logueado === true){ // si se loguea en el dominio
    
header("Location: htttp://subdominio.dominio.com/index.php?logeado=1&usuario='".$_SESSION['usuario']."'");

En el index de tu subdominio o al archivo a donde vayas a redirigir luego de loguearte e en tu dominio colocas lo siguiente

Código PHP:
session_start();

if (
$_REQUEST['logeado'] === 1){
    
$_SESSION['usuario'] = $_REQUEST['usuario'];

Espero te sirva.
Saludos
Si uso eso sería demasiado facil que entrasen con cualquier usuario, cambias el nombre, id o código que uses y has entrado.

Eso tiene un gran fallo de seguridad
__________________
Shaito Hiraga - Diseñador CSS
  #6 (permalink)  
Antiguo 08/09/2011, 04:36
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Respuesta: Problema con Session

Cita:
Iniciado por andresdzphp Ver Mensaje
Te interesa sobre todo el tercer parámetro esa la función session_set_cookie_params



Te dejo un ejemplo del manual:

Código PHP:
Ver original
  1. <?php
  2. $currentCookieParams = session_get_cookie_params();
  3.  
  4. $rootDomain = '.example.com';
  5.  
  6.     $currentCookieParams["lifetime"],
  7.     $currentCookieParams["path"],
  8.     $rootDomain,
  9.     $currentCookieParams["secure"],
  10.     $currentCookieParams["httponly"]
  11. );
  12.  
  13. session_name('mysessionname');
  14.  
  15. setcookie($cookieName, $cookieValue, time() + 3600, '/', $rootDomain);
  16. ?>

Así se pueden manejar en subdomonios. Saludos
Podrías explicarme un poco más como hacer funcionar ese code?

Un saludo
__________________
Shaito Hiraga - Diseñador CSS

Etiquetas: session, 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 10:38.