Foros del Web » Programando para Internet » PHP »

Rocordar sesion iniciada PHP

Estas en el tema de Rocordar sesion iniciada PHP en el foro de PHP en Foros del Web. Hola.. Tengo una web en la que he echo un sistema de inicio de sesion ..el cual hace una consulta en una base de datos ...
  #1 (permalink)  
Antiguo 21/02/2009, 11:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Rocordar sesion iniciada PHP

Hola..

Tengo una web en la que he echo un sistema de inicio de sesion ..el cual hace una consulta en una base de datos y compara las contraseñas para dejar o no dejar a la persona...

El problema esta en que una vez introducidos los datos y el LOING sea satisfactorio quiero mandar al visitante a otra pagina donde esta el contenido de la pagina...

La cuestion es que si mando a cargar otra pagina con un JS window.location ...pues no se como hacer que se recuerde que la sesion de la cual a traves de ella he accedido a la infomacion...

La pagina a la que mando al usuario despues de logearse es una en la cual envian imagenes para su posterior retoque, lo cual , lo que quiero hacer es que sin necesidad de rellenar sus daros personales saber que usuario es el que ha entrado en el loing para de hay consultar sus demas datos...

No se si me he esplicado bien ..yo creo k no ..pero a vver si me pueden ayudar ...
  #2 (permalink)  
Antiguo 21/02/2009, 13:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Pues tienes tres opciones:

1- SESIÓN
Con esta iniciarías una sesión
Código PHP:
session_start() 
Y guardas el nombre de usuario, por ejemplo, en una variable
Código PHP:
$_SESSION['user'] = $_POST['user']; 
Este método te sirve sólo si quieres que el user este logueado mientras mantenga abierto el navegador. Si quieres que su sesión se recuerde durante, por ejemplo, una semana, usa el método 3.

2- COOKIES
Tendrías que guardar el nombre de usuario en una cookie. Es recomendable que lo encriptes por seguridad. Yo no te recomiendo este método, es mejor que uses el 1 o el 3.

3- SESIÓN + COOKIES
Es una convinación de las anteriores. Por ejemplo, guardarías en una cookie el id del usuario, y el resto de datos los rescatarías cada vez que el user entre en tu web.

Espero que te sirva para algo esto ;)
  #3 (permalink)  
Antiguo 22/02/2009, 04:26
 
Fecha de Ingreso: febrero-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Ohhhh gracias , la verdad , no conocia esta funcion.

Pero tengo un problemilla ahora que lo he leido .. he estado buscando en internet como se uiliza la sintexis y tal ..pero nose pork no encuentro nada...

La cosa es que ..

Yo al principio de todo el <? ?> abro la sesion y si yo luego con un window.location cojo y abro otra web.php ... se guarda los datos de la sesion ?...

Podria ponerme una especie de ejemplo corto para yo mas o menos pillarlo ?...algo faci nose ...

La verdad me vendria muy bien ...:D

gracias de antemano
  #4 (permalink)  
Antiguo 22/02/2009, 04:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Ok, a ver si así lo entiendes mejor:

login.php
Código PHP:
<?
session_start
();
...
// Comprobamos los datos del form
// Si son correctos
$_SESSION['user'] = $_POST['user'];
mipag.php
Código PHP:
<?
session_start
();
if(!empty(
$_SESSION['user'])){
//Muestro la pag
}else{
// Muestro error o redirijo al login
}
Saludos! ;)
  #5 (permalink)  
Antiguo 22/02/2009, 04:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Vale y cuando pones $_SESSION['user'] significa que estas creando una variable dentro de la sesion que contiene el valor de $_post['user'] verdad ?

Y esto se guardaria hasta que el usuario cerrase en navegador ?
  #6 (permalink)  
Antiguo 22/02/2009, 05:54
 
Fecha de Ingreso: octubre-2008
Mensajes: 180
Antigüedad: 16 años
Puntos: 1
Respuesta: Rocordar sesion iniciada PHP

Así es amigo.
Ahora, si lo que quieres es que se recuerde la session durante un tiempo determinado, independientemente de que se cierre el navegador o no, tienes que usar una cookie que recuerde ese valor.
Le asignas un tiempo de vida a la cookie y los valores a recordar.
En tu formulario de login, pondrás una casilla checkbox tipo "recordar datos" y en las páginas a las que tengas el acceso restringido solo a usuarios logeados, pones una comprobación igual que hacias para la session pero esta vez comprueba la cookie y luego la session, y si existe alguna de las 2, te pasa a la zona guay, y si no existe ninguna, pásate por el login, gracias ;)
  #7 (permalink)  
Antiguo 22/02/2009, 06:22
 
Fecha de Ingreso: febrero-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Muchas graias me has ayudado mucho ..gracias otra v ez. .. ;)
  #8 (permalink)  
Antiguo 22/02/2009, 06:32
 
Fecha de Ingreso: febrero-2009
Mensajes: 31
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Rocordar sesion iniciada PHP

Ahora me pasa una cosa ...y es que no me funciona ...xd ..mira ..

En mi pagina de logeo ..tengo un php ..que valida los campos etc...lo normal...y tengo puesto una condicion que si los dos campos estan rellenos y hace la consulta a la BD y compara la contraseña...etc...

Si todo se cumple ...

Código PHP:
if($Pasw == $Fila[4]){
        $_SESSION['Nombre'] = $_POST['Correo'];
    ?> <script language="javascript"> window.location = "***.****/Galeria2.php"; </script> <?
}else{
    
$Info "Los datos introducidos no son validos";
}
La sasion la inicio al principio de todo el tocho de script ...

Bueno la pagina esa de Galeria2.php ...que veras en el JS ..que redirecciona a ella ...contiene
En la cabezera

Código PHP:
<?
session_start
();
$Nombre $_SESSION['Nombre'];
?>
y en el body en una celda de una tabla :

Código PHP:
<?
echo ($Nombre);
?>
Pero cuando me logeo y se redirecciona .. no muesta nada ..el echo no funciona ..ni nada de nada ... sabrias decirme pork es ?
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:39.