Foros del Web » Programando para Internet » PHP »

Guardar página de sesion

Estas en el tema de Guardar página de sesion en el foro de PHP en Foros del Web. Que tal! Estoy trabajando con sesiones y lo que quiero hacer es lo siguiente: En mi página solo algunas cosas estan restringidas no todas. Quiero ...
  #1 (permalink)  
Antiguo 02/08/2005, 12:21
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
Guardar página de sesion

Que tal!

Estoy trabajando con sesiones y lo que quiero hacer es lo siguiente:

En mi página solo algunas cosas estan restringidas no todas.
Quiero que cuando yo quiera acceder a alguna de las páginas restringidas me lleve a página de login (lo cual ya lo tengo).
Lo que deseo resolver es como hacer para que me guarde la página a la cuál yo queria acceder y cuando de login me lleve a esa página y no a la del inicio.
  #2 (permalink)  
Antiguo 02/08/2005, 12:40
Avatar de Matías  
Fecha de Ingreso: mayo-2002
Ubicación: Rosario, Argentina
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
Hola Sophia,

Con: $_SERVER['HTTP_REFERER']; tienes la página de donde vienes, esta la podrías guardar en sessión, y una vez logueado ir a esta página.

Espero te sirva,
Saludos,
__________________
Matías Hernán Piuma
Programador PHP Freelance
  #3 (permalink)  
Antiguo 02/08/2005, 13:05
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
gracias...

a ver pero si yo deseo acceder a una liga y no puedo me manda a la de login como guardo la dirección de la liga??? para cuando de login me lleve a ella??



Saludos!!!!
  #4 (permalink)  
Antiguo 02/08/2005, 13:12
Avatar de Matías  
Fecha de Ingreso: mayo-2002
Ubicación: Rosario, Argentina
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 0
No se como tienes tu el control del login, pero deberías guardarlo en la página que le sigue a liga, supongo que será el formulario de login.

Cualquier cosa comentame como tienes echo el sistema, es decir, cuentame como haces.

Saludos.
__________________
Matías Hernán Piuma
Programador PHP Freelance
  #5 (permalink)  
Antiguo 02/08/2005, 13:29
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
a mira tengo una pagina principal y esa pagina tiene muchas ligas, de las cuales no todas requieren que ingreses tu usuario y contraseña.

Si estas en sesion no hay problema, pero si no, te pide usuario y contraseña, si yo quiero acceder a una liga X y no estoy logiado ahi es donde tengo el problema porque cuando yo hago login siempre me manda a la pagina de inicio y yo no quiero yo quiero que me mande a la pagina que yo queria ingresar
  #6 (permalink)  
Antiguo 03/08/2005, 07:31
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Podría ser que junto donde chekas que se este logueado guardas la página "actual" en una variable de sesión, esa la recojerás y harás tu enlace de volver...

Un ejemplo sencillo:
Código PHP:
<?php
session_start
();
if(!isset(
$_SESSION['loguin'])) { // verás si se esta loguado
    
$_SESSION['url']=$_SERVER['PHP_SELF']; // guadas la página actual 
    
header("Location: loguin.php");  // mandas a que se logueé
    
exit;
} else {
    echo 
"Contenido...";
}
y el loguin.php
Código PHP:
session_start();
$_SESSION['loguin']=true// logueas
echo "<a href=\"".$_SESSION['url']."\">Ya puedes acceder</a>"// Imprimes
unset($_SESSION['url']); // Destruyes 
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 03/08/2005, 13:18
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
Gracias eso era mi problema, pero me gustaria que no tuviera que pulsar la liga sino que fuera automatico, hay una manera???
  #8 (permalink)  
Antiguo 03/08/2005, 13:38
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
el codigo ke te ha puesto nunestro compañero Jam1138 te lleva automaticamente al login sin pulsar en ningun lao ya ke esta haciendo uso de header("Location: login.php");

Un saludo
  #9 (permalink)  
Antiguo 03/08/2005, 13:57
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
Si eso si lo se,
pero cuando doy los datos de acceso y estos son válidos me envía a una página dónde hay una liga la cual pulso y me lleva a la página que yo quería entrar,en lugar de liga me gustaría que me llevara automáticamente.

pero NO puedo hacer esto:


Código PHP:
session_start(); 
$_SESSION['loguin']=true;
$target $_SESSION['url'];

y asi ya a la página nomas le pondría

header
("Location: $target"

claro que esto no es posible pero quiero algo que funcione parecido
alguna sugerencia????
  #10 (permalink)  
Antiguo 03/08/2005, 14:17
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
haber si asi te funciona
Código PHP:
<?
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

if( ($_POST[nick] == '') or ($_POST[pass] == '') )//comprobamos que las variables enviadas por el form de login.php tienen contenido
{
Header("Location: login.php"); //estan vacías, volvemos al index
}else{

//comprobamos en la db si existe ese nick con esa pass
$usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ");
if(
$user_ok mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
{
 
session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
session_register("idusuario"); //registramos la variable idusuario que contendrá la id del user
//damos valores a las variables de la sesión
$_SESSION[usuario] = $user_ok["nick"]; //damos el nick a la variable usuario
$_SESSION[idusuario] = $user_ok["id"]; //damos la id del user a la variable idusuario
Header("Location: login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario
}else{
echo 
'Nick y pass incorrectos';
Header("Location: login.php"); // volvemos al login para insertar nick y pass
}

}
?>
las variables las puedes modificar segun tu sistema de usuarios
Un saludo

Última edición por ZydRick; 03/08/2005 a las 14:25
  #11 (permalink)  
Antiguo 03/08/2005, 15:33
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por sophia2323
claro que esto no es posible pero quiero algo que funcione parecido
alguna sugerencia????
Y solo por curiosidad... ¿por qué dices que no es posible??.. no le veo ningún problema:
Código PHP:
 session_start();
$_SESSION['loguin']=true// logueas
header("Location:".$_SESSION['url']); // Redireccionas
exit; 
Solo ahora tendrías que destruir la variable de sesión en la página dónde redireccionaste... solo suponiendo pudiese darte problemas.

Comentario: El uso de session_register() es obsolteo.. hay que usar la variable superglobal $_SESSION y es un error combinar ambas cosas (session_register() y $_SESSION); Esto puede leerse en la documentación oficial.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 04/08/2005, 11:40
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
Destruyo la variable al inicio del la página a donde voy? o no perjudica en que parte la destruyo??
  #13 (permalink)  
Antiguo 04/08/2005, 12:04
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 12 años, 10 meses
Puntos: 4
si hablamos de un sistema de usuarios la sesion se destruye al momento ke el usuario cierra sesion
  #14 (permalink)  
Antiguo 04/08/2005, 12:10
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
a lo que me refiero con destruir la variable es a esto

Código PHP:
unset($_SESSION['url']); // Destruyes 

porque si tuve problemas... pero la destruyo al final de mi codigo y ya me ha funcionado... pero queiro saber si afecta en que momento de mi codigo la destruyo
  #15 (permalink)  
Antiguo 05/08/2005, 00:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... yo supuse (ó manejé) crear una variable auxiliar, guardar en ella la URL solo de manera TEMPORAL. Según mi pequeño sistema esa variable SOLO la ocuparé para redireccionar, de ahí en adelante no la necesito más... entonces, aunque no me estorba, lo mejor sería eliminarla inmediatamente después que se ocupó.

Como redireccionamos directamente no podemos destruirla en donde hacemos el loguin (no entiendo cómo hagas el loguin si redireccionas ) pero podemos hacerlo en la página que verifica el acceso:
Código PHP:
<?php
session_start
();
if(!isset(
$_SESSION['loguin'])) { // verás si se esta loguado
    // etc
} else {
    if(isset(
$_SESSION['url'])) unset($_SESSION['url']); // Destruyes

    
echo "Contenido...";
}
.....

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 05/08/2005, 13:33
 
Fecha de Ingreso: abril-2005
Mensajes: 94
Antigüedad: 12 años, 8 meses
Puntos: 0
muchas gracias todo resuelto...
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 13:02.