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. vamos a ver, tengo un problema que me lleva rondando la cabeza durante un tiempo...y no sé cómo resolverlo, y es la primera vez que ...
  #1 (permalink)  
Antiguo 18/09/2008, 05:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Exclamación problema con $_SESSION

vamos a ver, tengo un problema que me lleva rondando la cabeza durante un tiempo...y no sé cómo resolverlo, y es la primera vez que posteo, y a partir de ahora forearé más por este lugar. Haber, explico:

Tengo un formulario, con nombre de usuario y registro, y una página en la que compruebo que exista el usuario, le cree una sesión, y te reenvíe al index, donde pregunto si existe $_SESSION['nombre_usuario'], y si existe que muestre un menú de usuario...

El problema es el siguiente, en firefox, funciona todo perfectamente, en todas las versiones, está todo correcto, pero llegas al maldito explorer, y no guarda las sessiones ni las cookies, a no ser que bajes el nivel de seguridad del explorer, pero normalmente casi todo el mundo tiene puesto un nivel de seguridad medio...que es el que viene predeterminado con explorer.

¿alguna solución para que me respete las cookies o las sesiones el nivel medio de seguridad de explorer? parece ser que hace falta unas directivas de seguridad, o algo así...bueno espero alguna respuesta.

P.D.; gracias de antemano...
  #2 (permalink)  
Antiguo 18/09/2008, 06:49
 
Fecha de Ingreso: enero-2006
Mensajes: 47
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: problema con $_SESSION

Holaaaaaaaaaaaaaaa

1------ Mira a ver si tienes configurado en el php.ini donde se están guardando la sessiones.

Antes de utilizar la variable $_SESSION debes decir session_start() programáticamente en cada archivo php al inicio del script (los que te renderizan el contedino html).

Activar está opción en el php.ini (pero esta es la menos recomendable).


Bueno espero que te sirva
  #3 (permalink)  
Antiguo 18/09/2008, 06:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

olas, ante todo gracias por la respuesta, muchas gracias...
bueno, decirte que el php.ini lo tiene arsys, que es donde alojo la web, en local me funciona perfectamente...tanto en firefox como en explorer, pero no cuando lo subo.

Arriba me funciona perfectamente con la seguridad de las cookies bajas de todo, pero nadie las tiene bajas de todo, busco una solución para que a nivel medio( el predeterminado que trae xp) funcionen mis cookies, qué puedo hacer???la verdad es que llevo una semana comiendome la cabeza...
  #4 (permalink)  
Antiguo 18/09/2008, 07:28
Avatar de kornflakes  
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: problema con $_SESSION

Buenas,

No hace falta que utilices las cookies para eso. Puedes usar las variables $_SESSION que en Arsys funcionan sin problemas y no tienes que estar pendiente de la configuración del navegador.

Lo único que tienes que tener en cuenta es lo que te comenta mmesa84, tienes que iniciar la sesión antes de utilizarlas.

Intentalo y nos dices.

Saludos
  #5 (permalink)  
Antiguo 18/09/2008, 07:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

gracias cornflakes, eso ya lo hago, sino mira, te muestro el código ok???


esto lo hace si existe el usuario y es correcto el pswd...

----------l--------------------------login.php-----------------------------------------------------

session_start();//iniciamos sesion
session_name($login); //le damos el nombre a la sesión

$_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");
$_SESSION['usuario']=$usuario_datos['pseudonimo'];


if(strlen($usuario2) < 1){
$_SESSION['nombre']=$usuario_datos['nombre'];
$_SESSION['ID_usuario']=$usuario_datos['ID'];
$_SESSION['email']=$usuario_datos['email'];
}
else{
$_SESSION['ID_empresa']=$usuario_datos['ID'];
$_SESSION['nombre']=$usuario_datos['nombre_visual'];
$_SESSION['empresa']=1;
$_SESSION['email']=$usuario_datos['email'];
}

Header("Location: index.php");

------------------------------------------------------------------------------------------------




y ahora index.php...


-----------------------------------index.php------------------------------------------------

include ('includes/connection.php'); //incluyo la conexion
session_start(); //recupero la sesión

if(isset($_SESSION['nombre'])){ //miro si existe la variable de session nombre
include('includes/div_mensuario.php'); //se agrega un div
}

---------------------------------------------------------------------------------------------------


y en firefox funciona perfectamente, al igual que en explorer con la seguridad de las cookies bajas, pero necesito que funcione con la seguridad de las cookies en nivel medio...

gracias por las respuestas, haber si alguien puede ayudarme
  #6 (permalink)  
Antiguo 18/09/2008, 09:00
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: problema con $_SESSION

Que tal oskrp, antes de : include ('includes/connection.php'); //incluyo la conexion, debe estar tu session_start();, yo lo haría así nose como tengas el código de tus páginas, como connection.php, me imagino que lo usaras en todas tus páginas para hacer consulta yo colocaría el session_start(); en esa página en la primera línea y me olvido de las demás páginas solo con hacer el include ya estoy creando la sesión, espero que te sirva de ayuda... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #7 (permalink)  
Antiguo 18/09/2008, 10:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

gracias por la respuesta, pero esa no es la solución. ya lo he probado varias veces, ya lo he leído en varios sitios, pero ese no es el problema, de todas maneras pondré mi código tal y como dijiste tú, iniciando la sesión antes de la conexion. un saludo, haber si alguien mas tiene alguna idea de porque no me funciona en explorer.... alguien sabe si hará falta unas directivas de seguridad???
  #8 (permalink)  
Antiguo 18/09/2008, 10:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

Hola oskrp, recuerda tratar de utilizar session_start() antes de cualquier otro codigo de php.
No debes de tener ningun problema utilizando variables de $_SESSION con IE, ya que por lo general estas son independientes del navegador, a diferencia de las cookies.
Por otro lado, puede ser que tus sesiones esten expirando muy rapido,
porque no intentas utilizar ini_set.. digamos
ini_set('session.cache_expire',360); //por ejemplo

Saludos
  #9 (permalink)  
Antiguo 18/09/2008, 14:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

gracias por la respuesta, pero esas dos opciones que tú me das están descartadas, pues resulta que es la primera linea de código php, y el tiempo que tienen las variables de expiración es de 10 minutos, y eso funciona a la perfección comprobado con firefox. haber, si pillo explorer, herramientas, opciones de internet, y cambio la seguridad de las cookies a nivel bajo funciona perfectamente, lo que pasa es que me bloquea las session en nivel medio y parece ser que todo porque no tengo una directiva de seguridad solida...
alguien sabe algo sobre este tema???es que me tiene muy mosca esto durante la última semana.
  #10 (permalink)  
Antiguo 19/09/2008, 06:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 25
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: problema con $_SESSION

bueno, gracias a todos por los comentarios, ya he resuelto por fin el problema. lo he resuelto pasando las sesiones por url, hay gente que dice que es arriesgado, pero el único riesgo que existe es que alguien guarde la página en favoritos y le quede una sesión antigua, nada mas, del resto, como está dentro de un framework, en la url siempre se muestra www.nombredeweb.com , no se muestran las variables que paso por get.

Para pasar las variables en los header, muy sencillo, simplemente haces así:

************************************
header("Location: index.php?".SID);
************************************

porque así pasamos el SID, que es la session_id correspondiente a la sesion actual iniciada, no debemos perderla en ninguna página, porque sino se perderá definitivamente, al no encontrar la sesión e intentar buscarla como no existe, hará una nueva session_start() lo cual haría perder la anterior logueada.


para pasar la variable session_id, en un form, es decir, con un formulario, podemos hacerlo de la siguiente manera, pasando un campo hidden;

************************************
<input type="hidden" name="nombre_sesion" value="<?=session_id()?>">
************************************

este código lo hay que poner, obviamente, entre las dos etiquetas del form.

bueno, dejo esta explicación por si alguien tiene un problema parecido con las cookies en internet explorer, pues es una forma bastante buena de solucionarlo...

un saludo a todossssssssss
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:20.