usuarios usando sesiones pasar paginas manejo entre ejemplos ejemplo control autenticación php codeigniter session

usando - pasar variables de session entre paginas php



Sesiones de CodeIgniter vs sesiones de PHP (5)

El manual dice más flexibilidad que mejor ;-)

Supongo que el principal beneficio de la clase de sesión de CodeIgnite es que se integra con el marco y ofrece algunas funciones adicionales, como el seguimiento de direcciones IP y lo que llama flashdata (datos de sesión que se borran tan pronto como se leen). Si está utilizando un marco en primer lugar, eso significa que estas opciones pueden ser atractivas para usted.

Lo que sea, también puede guardar datos de sesión en una base de datos:

http://codeigniter.com/user_guide/libraries/sessions.html

Soy relativamente nuevo en CodeIgniter y estoy haciendo mi primer proyecto de CI en el que hay cuentas de usuario, etc. En el pasado, siempre he usado la variable $ _SESSION de PHP para este fin. Sin embargo, parece que CI tiene su propio mecanismo de sesión, que según afirma es "mejor"

El mecanismo de sesión de CI parece almacenar todos los datos en una cookie. Personalmente me gusta la idea de que todos los datos estén almacenados en el servidor, a los que se accede con una cookie-key como el mecanismo de sesión nativo de PHP ... ¿Soy tonto pensando que es mejor? ¿Debería simplemente aceptar el mecanismo de CI? ¿O debería seguir adelante y usar sesiones PHP nativas?

¿Qué hacen chicos?

Gracias,
Mala


En mi experiencia con CI, he encontrado algunas anomalías en sus sesiones, pero para la mayoría de las necesidades del día a día la biblioteca es buena y fácil de usar. Como se señaló, Flashdata es una característica muy agradable.

Si elige permanecer con las sesiones de CI, le sugiero que almacene sesiones en una base de datos y, además, encripte las cookies:

$config[''sess_encrypt_cookie''] = TRUE; $config[''sess_use_database''] = TRUE; $config[''sess_table_name''] = ''sessions'';

La estructura de la base de datos debe ser la siguiente:

CREATE TABLE IF NOT EXISTS `sessions` ( session_id varchar(40) DEFAULT ''0'' NOT NULL, ip_address varchar(16) DEFAULT ''0'' NOT NULL, user_agent varchar(50) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id) );



Sé que esta es una publicación más antigua, pero creo que vale la pena compartir lo que he encontrado.

Como CI utiliza un enfoque basado en cookies (incluso con el almacenamiento de la base de datos), causa un problema para mi aplicación en particular, que sirve datos a clientes remotos que solicitan datos a través de curl. El resultado final es Cookies y Cross Site Scripting, aunque manejables, no funcionan bien juntos.

Elegí intentar anular la clase nativa Session.php proporcionada por CI con mi propio MY_Session.php. Me alegré al descubrir que esto no era demasiado difícil, pero me sorprendió descubrir que CI estaba regenerando la identificación de la sesión a pesar de que mi script los proporcionaba explícitamente.

De acuerdo con el manual de CI

ID de sesión única del usuario (esta es una cadena estadísticamente aleatoria con entropía muy fuerte, hash con MD5 para la portabilidad y regenerada (de forma predeterminada) cada cinco minutos )

Aunque probablemente pueda encontrar una manera de anular esto, me pregunto si no sería mucho más fácil volver a las sesiones de PHP.

Solo algo de reflexión si vas a usar CI.


Las sesiones de CI tienen limitaciones de tamaño de almacenamiento

Como sabrá, las sesiones de CI son básicamente cookies, ya sea que las cifre o no. En lo que respecta a la seguridad, ambos tienen sus ventajas y desventajas.

Mi preocupación era el límite de tamaño de las sesiones de CI. Puede contener solo datos de 4 kb ya que básicamente es una cookie, mientras que la sesión de Native PHP solo almacena identificaciones de referencia en las cookies y todos los datos de la sesión se almacenan en la memoria del servidor. Esto es útil cuando tiene que almacenar una gran cantidad de elementos en una sesión.

Digamos un carrito de compras con más artículos o una lista de reproducción de música del usuario con más de 50 pistas ... etc.

Espero que esta información ayude a alguien algún día.

Aclamaciones..!!