CRISTALAB
(Antes que nada, moderadores, si ya hay un hilo con una consulta parecida, por favor, siéntanse en libertad de eliminar este y remitirme al hilo que hable de este tema)
Tengo un sitio que trabaja con sesiones y todo está funcionando bien. El método que estoy utilizando es el siguiente:
En todos los archivos .PHP del sitio, luego del session_start() hay una instrucción include_once("login.php").
El archvio login.php:
.- Usa el método _POST y action="user.php"
.- Si isset($_SESSION["Login"]) = FALSE entonces muestra los campos de Log/Pass y el botón Submit - "Iniciar sesión".
.- Si isset($_SESSION["Login"]) = TRUE entonces inicializa un hidden con Logout = 1, muestra el nombre del usuario y el botón Submit - "Desconectar sesión".
El archivo user.php
Si recibe Log/Pass
.- Recibe Log/Pass por _POST y hace la búsqueda en la base de datos.
.- Si Log/Pass es TRUE inicializa $_SESSION["Login"]
Si recibe Logout = 1
session_unset();
session_destroy();
Repito: TODO está funcionando bien.
Decidí comprar un Certificado SSL para que cuando los usuarios entren con Login/Password (Log/Pass) su información esté protegida por el certificado, y allí comenzaron los problemas.
Para quien haya utilizado un Certificado SSL (y para quien no lo ha hecho), este certificado "asegura" un dominio (o un subdominio) y no los archivos.
Como no quiero que www.misitio.com esté afectado TODO por el Certificado, creé un subdominio secure.misitio.com y este subdominio SI está protegido.
Como saben, un subdominio es una carpeta dentro del public_html, pero si redirecciono mi action="secure/user.php" NO SE ACTIVA EL CERTIFICADO.
Para que el certificado se active tengo que hacer el action="https://secure.misitio.com/user.php".
Debido a que es un _POST, el archivo user.php recibe las variables, verifica los datos y cre las variables de sesión. Al momento de devolver el control a la página desde donde lo recibimos, NO MANTIENE LA SESION.
Es natural que suceda porque estoy intentando transferir la sesión ENTRE DOMINIOS. Y allí es donde requiero su ayuda.
He intentado:
.- Pasar el session_id por _POST desde el login.php al user.php y el user.php lo recibe, pero no lo devuelve.
.- Cambiar los parámetros de las cookies, colocar un nombre de sesion con session_name() y nada. No devuelve la sesión después de haber verificado los datos.
.- Almacenar el Login y el session_id() generado por el user.php en una tabla y luego buscarlo desde index.php. Lo asigna pero no mantiene la sesión.
Mientras estuve trabajando enviando el action"secure/user.php" desde login.php todo estuvo bien. Al cambiar de dominio comenzó a fallar.
¿Cómo puedo hacer que el user.php pueda crear una sesión y devolverla ENTRE DOMINIOS, es decir, entre el dominio http: y el https: ?
Agradezco su asistencia.
----------------------------------------
YOLED
Cabudare - Lara - Venezuela
----------------------------------------