Foros del Web » Programando para Internet » PHP »

Duda con sesiones

Estas en el tema de Duda con sesiones en el foro de PHP en Foros del Web. Buenas a todos! Mi problema es, que estoy haciendo un proyecto en php, en el cual uso un sistema de login para poder visualizar toda ...
  #1 (permalink)  
Antiguo 05/06/2012, 02:20
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 1
Duda con sesiones

Buenas a todos!

Mi problema es, que estoy haciendo un proyecto en php, en el cual uso un sistema de login para poder visualizar toda la web. La cosa es que cuando yo haga el login, se comprueba si esta correctamente hecho y si es asi, se reedirige al index.php

Por lo que he visto, solo debo hacer session_start() en esta pagina, el problema esta en que en index.php tengo 3 divs, cada uno requiere otro archivo php que es lo que se muestra en esos divs.

Por lo tanto la pregunta es, como puedo ver las variables de sesion en estos divs?
Porque si pongo session_start() en cada uno de ellos, me da el error de que no estan definidas las variables, y si lo pongo en el index, no podria luego ponerlo en los php de los div, ya que me dice que la session ya esta iniciada.

Alguna idea?? Saludos!
  #2 (permalink)  
Antiguo 05/06/2012, 05:33
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Duda con sesiones

Suponemos que si esta logeado para acceder a index, ya lo esta para acceder a las páginas que contienen esos divs..

Cual es el problema?

La sesion la inicias una vez, y luego la recuperas tantas veces como quieras..

te serviría guardar un valor en una variable, y comprobando esa variable sabes
si esta logeado o no..

(ej;
if($logincorrecto = 1) { muestro la pagina } else { error, no estas logeado };).
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #3 (permalink)  
Antiguo 05/06/2012, 05:36
 
Fecha de Ingreso: abril-2012
Mensajes: 71
Antigüedad: 12 años, 7 meses
Puntos: 16
Respuesta: Duda con sesiones

no entiendo exactamente que es lo que quieres hacer...si pones session_start() al principio del archivo que luego incluye los otros archivos automaticamente lo estas definiendo tambien para los archivos incluidos...

Cita:
Por lo que he visto, solo debo hacer session_start() en esta pagina, el problema esta en que en index.php tengo 3 divs, cada uno requiere otro archivo php que es lo que se muestra en esos divs.
en que sentido "solo" session_start()?? no veo el problema con los tres divs si te comportas como digo al principio

Cita:
Por lo tanto la pregunta es, como puedo ver las variables de sesion en estos divs?
session_start() no sirve para ver las variables de sesion, y las variables de sesion no se crean magicamente....tienes que crearlas deliberadamente en el array de sesion $_SESSION[] y luego mostrarlas como cualquier otra variable en cualquier lugar.

yo te recomendaría leer un poco sobre las sesiones de php considerando que es uno de los aspectos mas útiles del lenguaje...
  #4 (permalink)  
Antiguo 05/06/2012, 06:48
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Duda con sesiones

Lo primero de todo daros las gracias por contestarme!

Comentaros que he leido bastante sobre sessiones, lo que pasa esque es la primera vez que las uso, entonces es nuevo para mi y tengo los conceptos un poco liados quizas. Voy a intentar explicarlo mejor, a ver si consigo que lo entendais bien.

Meto las credenciales en la pagina de login, si son correctas me creo una session y dos variables, logeado = "si" y un num = valor y inmediatamente hago un header location hasta index.php.

Aqui tengo 3 divs, que se refrescan cada un segundo usando JQuery. Cada uno de ellos contiene una pagina php.

Ahora bien, tengo un php que continua con al sesion anterior y comprueba si logeado = "si", en caso contrario te redirige al login.php.

El problema que me surge es el siguiente:

- Si agrego al index.php el include("seguridad.php"); al querer usar $_Session en una de las paginas de los divs, a la primera todo bien, pero en cuanto se recarga la pagina automaticamente me da el fallo de undeffined variable $_SESION

- Si lo hago desde cada uno de los divs, me da el error de que la session ya existe al principio, pero en cuanto se me recarga la pagina se me quita.

Podria simplemente hacerlo de la segunda forma, ya que al segundo se me quita el error, pero me parece un poco cutre, que aunque aun soy estudiante de programacion me gusta hacer las cosas bien, y ademas que quiero saber el porque pasa esto, y entenderlo.

Espero haberme explicado mejor, y a ver si me podeis aclarar la duda y que es lo que hago mal, ya que como digo no tengo todavia mucha destreza con php.

Un saludo y gracias
  #5 (permalink)  
Antiguo 05/06/2012, 07:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Respuesta: Duda con sesiones

muestra el codigo para que te podamos ayudar mejor.
Las sesiones si las incisias bien no se pierden al menos que cierres la sesion o pase un tiempo sin utilizar la pagna.
  #6 (permalink)  
Antiguo 05/06/2012, 08:36
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Duda con sesiones

Bien, ahi va!

Primero valido si el login es correcto y hago esto:
Código:
session_cache_limiter();
session_name('NAME');
session_start();
// Para que al cerrar la ventana se termine la sesion
session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
					
$_SESSION['logeado'] = "si";
$_SESSION['paletta'] = $reg['paletta'];
									
header("Location: asta.php");
Luego, tengo este archivo para agregarlo a donde quiera usar la sesion:
Código:
<?
session_cache_limiter();
session_name('NAME');
// Inicio la sesión
session_start();
// Para que al cerrar la ventana se termine la sesion
session_set_cookie_params(0, "/", $_SERVER["HTTP_HOST"], 0); 

// Comprobamos que el usuario esta logeado
if ($_SESSION["logeado"] != "si") {
    //si no existe, envio a la página de autentificacion
    header("Location: index.php");
    //ademas salgo de este script
    exit();
}	
?>
Despues de esto, lo que he comentado antes. Si incluyo en el index el archivo anterior, inciia bien, reconoce la sesion... pero al refrescarse los divs( se refrescan solos cada 1 seg mediante JQuery ) es cuando se pierde la sesion y no me reconoce la variable $_SESION

Si en lugar de agregarlo al index.php, lo incluyo uno por uno en cada div ( archivos que contiene el contenido de los div ), al principio me da el error de que la sesion ya esta iniciada, pero al refrescarse, ya va perfecto.

Supongo que eso pasara porque solo estoy refresacndo los divs, y no el index.php que es el que tiene el include a la conexion... pero alguna idea para solucionarlo?
  #7 (permalink)  
Antiguo 05/06/2012, 12:00
Avatar de oNefl0w189  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 117
Antigüedad: 14 años, 7 meses
Puntos: 4
Respuesta: Duda con sesiones

Lo que no puedes hacer es en un archivo abrir la sesion y luego incluir otro archivo en donde la vuelves a abrir...

creo que tienes un index con 3 divs, y los divs haces un include('pagina.php'); no?

Pues con que en el index.php agregues el archivo en el que inicias la session, la sesion ya estará iniciada en la página de los 3 divs, son páginas embebidas digamos..
__________________
Nunca dijeron que la vida sería fácil, sólo prometieron que valdría la pena vivirla.

Dar las gracias y añadir Karma, no cuesta nada, ¿Que menos si te ayudan? :)
  #8 (permalink)  
Antiguo 06/06/2012, 01:14
 
Fecha de Ingreso: mayo-2012
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Duda con sesiones

Si si, de hecho me lo hace asi. El problema esta en que en este index, yo refresco las paginas en JQuery, y si la sesion solo la abro en el index, al recargar cada uno de los divs ya no me reconoce la sesion.

El problema viene por el refresco de los divs que contienen pagina.php, que al recargarlos ya no reconoce las sesiones que tiene el index.php

Lo de refrescar la web lo debo de hacer, la refresco por divs, para que el usuario no vea nada de como se refresca, quizas pueda refrescar toda la pagina, pero sin actualizar para que el usuario no vea el cambio...

Alguien ha trabajado con refrescos de web y tal ?? Lo que hago es simular tiempo real.

Etiquetas: sesiones, variables
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 14:09.