Foros del Web » Programando para Internet » PHP »

Sesiones

Estas en el tema de Sesiones en el foro de PHP en Foros del Web. Buenas, soy novato en php y estoy haciendo la típica página con su login y password para ingresar a un sitio web. Una vez hecha ...
  #1 (permalink)  
Antiguo 03/04/2006, 09:34
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Sesiones

Buenas, soy novato en php y estoy haciendo la típica página con su login y password para ingresar a un sitio web. Una vez hecha la verificación de usuario me creo una sesión y sus correspondientes variables para que una vez que me redirija a otras páginas poder utilizarlas hasta que el usuario desee desconectar.
El problema viene en q se me pierde la sesión y no encuentro la manera de solucionarlo.
Una vez q paso de una página a otra la session se pierde y las variables de sesión lógicamente tambien.
Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 03/04/2006, 09:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Como implementas las sesiones?
No haz olvidado colocar session_start() en cada script que quieras acceda a la sesion?
  #3 (permalink)  
Antiguo 03/04/2006, 09:46
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
Si, en la pagina en la que redirijo lo primero q pongo es el session_start() para q si está abierta la session me la mantenga
<? session_start() ?> y luego ya meto el resto del código detrás.

En la pagina original tengo esto:
session_name('pepe');
session_start();
session_register('login');
session_register('nombrecompleto');
session_register('tipousuario');

$login=$row["LOGIN"];
$nombrecompleto=$nom.$espacio.$ape;
$tipousuario=$row["IDTIPOUSUARIO"];

y luego lo redirijo fuera del codigo php mediante....
<script>document.location='admin.php'</script>
  #4 (permalink)  
Antiguo 03/04/2006, 10:09
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
Para registrar variables de sesión, no deberías utilizar session_register(), sino la matriz superglobal $_SESSION. La función session_register() funciona solamente si tu php.ini tiene la directiva register_globals en "on". Pero, por serguridad, desde PHP 4.2.0 esta directiva es por defecto "off", por lo que si este es tu caso, la utilización de session_register no funcionará.
Para registrar variables de sesion usá:
Código PHP:
<?
session_start
();
$_SESSION['tu_variable'] = $tu_variable//En lugar de session_register('tu_varible');
...
?>
Como dije antes, por seguridad, es altamente recomendable que la directiva register_globals este en "off" y utilizar $_SESSION en lugar de session_register.
Saludos.
__________________
¿Se me entiende la letra?
  #5 (permalink)  
Antiguo 03/04/2006, 10:10
 
Fecha de Ingreso: marzo-2006
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: pedido.php

No es recomendable que uses session_register, por ello deberias utilizar directamente

$_SESSION["variable"]=valor;

Saludos
  #6 (permalink)  
Antiguo 03/04/2006, 10:58
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
vale, ya tengo esto en el original...............
<?
session_start();
$login=$row["LOGIN"];
$nombrecompleto=$nom.$espacio.$ape;
$tipousuario=$row["IDTIPOUSUARIO"];

$_SESSION['login']=$login;
$_SESSION['nombrecompleto']=$nombrecompleto;
$_SESSION['tipousuario']=$tipousuario;
?>
<script>document.location='hlh.php'</script>

y el hlh.php contiene.......

<?
session_start();
?>
Bienvenido
<?
echo "<br>";
echo $nombrecompleto;
echo "<br>";
echo $login;
echo "<br>";
echo $tipousuario;
echo "<br>";
?>
Final

y sigue sin rular..................buaaaaaaa
  #7 (permalink)  
Antiguo 03/04/2006, 11:09
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
No estas accediendo al array superglobal, haz esto:

Código PHP:
<?
session_start
();
?>
Bienvenido
<?
echo "<br>";
echo 
$_SESSION['nombrecompleto'];
echo 
"<br>";
echo 
$_SESSION['login'];
echo 
"<br>";
echo 
$_SESSION['tipousuario'];
echo 
"<br>";
?>
  #8 (permalink)  
Antiguo 03/04/2006, 11:16
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
<?
session_start();
?>
Bienvenido
<?
echo "<br>";
echo $_SESSION['nombrecompleto'];
echo "<br>";
echo $_SESSION['login'];
echo "<br>";
echo $_SESSION['tipousuario'];
echo "<br>";
?>
Final


ya acabo de probar con esto y sigue sin funcionar, no se si será por la manera de indicarle la página, pero no debería....creo q ya he probado todo y sigue sin funcionar, socorrrooooo
  #9 (permalink)  
Antiguo 03/04/2006, 11:27
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
¿Utilizas session_name()? Si es así tenés que utilizar también esa función en el script donde queres continuar tu sesión, no solo en donde se inicia, porque de lo contrario vas a crear otra sesion distinta.
__________________
¿Se me entiende la letra?
  #10 (permalink)  
Antiguo 03/04/2006, 11:38
 
Fecha de Ingreso: abril-2006
Mensajes: 6
Antigüedad: 11 años, 8 meses
Puntos: 0
siiiiiiiiiiiiiiiiiiiiiiiiii eso era.....y en principio parece que ya no da erron con el session_destroy()....haria falta algo mas?
Muchas gracias a todo
  #11 (permalink)  
Antiguo 03/04/2006, 11:49
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
No se que problema tendrías con session_destroy(), pero generalmente lo que se hace es que tu link o botón "Cerrar sesion" te lleve a una página como esta:

Código PHP:
<?
session_name
("tu_nombre");
session_start();
//cosas que quieras hacer antes de destruir la sesion
session_destroy();
header("Location: pagina_logout.php");
?>
La última línea lo que hace es redirigir al navegador a una página que diga "Has cerrado tu sesión correctamente" o algo por el estilo (en este ejemplo dicha página es "pagina_logout.php").
Saludos.
__________________
¿Se me entiende la letra?
  #12 (permalink)  
Antiguo 03/04/2006, 11:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
En la mayoría de los casos no es necesario usar session_name(), pues los datos a accesar pueden estar en una misma sesion.
  #13 (permalink)  
Antiguo 03/04/2006, 12:08
Avatar de JorgitoAlfajor  
Fecha de Ingreso: enero-2006
Mensajes: 152
Antigüedad: 11 años, 11 meses
Puntos: 1
Cita:
Iniciado por claudiovega
En la mayoría de los casos no es necesario usar session_name(), pues los datos a accesar pueden estar en una misma sesion.
La verdad, no soy muy experto, pero ¿que pasa si luego desarrollas otra aplicacion web alojada en el mismo servidor que también utiliza sesiones?. Para un usuario que use ambas aplicaciones en una misma máquina la sesion será la misma, aunque deberían ser diferentes. Si el usuario cierra una de sus sesiones en una de las aplicaciones, la otra también perderá los datos. ¿No es así?.
Saludos.
__________________
¿Se me entiende la letra?
  #14 (permalink)  
Antiguo 03/04/2006, 12:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Por eso decía en la mayoría de los casos, y me parece que en ese caso sería mejor nombrar las sesiones, aunque no estoy 100% seguro de ello.
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 22:44.