session_start lo único que hace es indicarle al servidor que desde el momento que se declaró esa función en adelante está habilitado las sesiones. ¿Cómo las lee? Eso va a depender de varios factores.
1. Si tienes habilitado los cookies en el navegador, el id de la sesión se guardará en cookies para poder moverse a través de tu sitio web y así indicarle al servidor cual sesión le pertenece a quien
2. Si no tiene habilitado los cookies en el navegador, entonces se almacena la información en una constante llamada SID. Esta para que perdure en cada petición de tu web debe ser indicada por ejemplo en el url algo como
Código PHP:
Ver original<a href="foo.php?<?php echo SID; ?>">foo</a>
Luego para leerla solo es cuestión de usar la variable $_GET:
3. Depende de la configuración del php.ini. Yo tengo así declarado el de mi computadora
Código ini:
Ver originalsession.save_handler = files
session.save_path = "C:\xampp\tmp"
session.use_cookies = 1
session.use_only_cookies = 0
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = On
session.bug_compat_warn = On
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
Los más comunes a modificar son:
save_path,
use_cookies,
name y
cookie_lifetime (puede que se me escape alguno de los más comunes a modificar).
Lo importante de todo esto, es asegurarse que la función session_start, esté arriba de todo para así evitar errores comunes de que se ha enviado información al navegador por tal motivo no se puede trabajar con las cabeceras.
Si tienes presente todo esto, te debe funcionar correctamente en el navegador. Si se me olvidó algo, alguien más te lo indicará.