Foros del Web » Programando para Internet » PHP »

por que no me funciona esta session??

Estas en el tema de por que no me funciona esta session?? en el foro de PHP en Foros del Web. este es mi codigo: Código PHP: session_start (); $user  =  "luis" ; $registro [ 0 ] =  "luis" ; if ( $registro [ 0 ] ==  $user  ){ ...
  #1 (permalink)  
Antiguo 29/04/2004, 12:52
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
por que no me funciona esta session??

este es mi codigo:
Código PHP:
session_start();
$user "luis";
$registro[0] = "luis";

if (
$registro[0] == $user ){
    ECHO (
$user);
$_SESSION['datos']= $user;
echo (
"<a href='../inde.php'>luis</a>");
}
else{
echo (
"piro");

y el enlace es este ----inde.php-----
Código PHP:
session_start();
echo 
$_SESSION['datos']; 
por que no em funciona??
tambien ensalle de esta forma:

Código PHP:
session_start();
$user "luis";
$registro[0] = "luis";

if (
$registro[0] == $user ){
    ECHO (
$user);
session_register(“user”);
echo (
"<a href='../inde.php'>luis</a>");
}
else{
echo (
"piro");

y el enlace es este ----inde.php-----
Código PHP:
session_start();
echo 
$user
y tampoco funciono....

Por que????
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 29/04/2004, 13:05
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
haz comprobado que esto:
if ($registro[0] == $user )
se cumple???
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 29/04/2004, 14:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Y .. como propagas el SID (identificador único de sesión)

Por el link que haces .. por lo menos TU programación no lo hace .. así que estarías confiando que PHP lo va hacer solo (automáticamente).. y eso depende del estado de la directiva de php.ini:

session.use_trans_sid = 1 (a 1 PHP inserta el SID en ciertos tag's HTML como el de link y algunos más .. según describe la directiva url_rewrite_tags ...)

El SID lo puedes propagar en cookies también (más seguro y así recomienda PHP que se haga) .. pero este requiere de un navegador que acepte cookies y la configuración:

session.use_cookies =1 (minimo).

Revisa en www.php.net/session .. que es el SID y todo lo relacionado con la configuración de sesiones. EN PHP la configuración de este es principal conocerla para saber como se van a comportar tus técnicas/funcionalidades que uses (como esta de sesiones).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 29/04/2004, 15:56
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
primero, la condicion del if, como se pueden dar cuenta, si se cumple
en cunato a lo del SID
el valor de session.use_trans_sid es igaul a 1, lo que quiere decir que si se deberian pasar con el solo hecho de dar click en el enlace ¿o no? voy a leer lo de las sesiones en php.net
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 29/04/2004, 16:00
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
ademas necesito que se haga por la url, no puedo utilizar cookies
porque, ¿que pasaria si el usuario las tuviese desactivadas? supongo que no fucnionaria el script
__________________
SEO en Medellin
  #6 (permalink)  
Antiguo 29/04/2004, 16:05
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
aun no soy capaz

que em recomiendan???
el $phpsid es pasado atravez de la URL, que mas puedo hacer
de antemno muchas gracias
__________________
SEO en Medellin
  #7 (permalink)  
Antiguo 29/04/2004, 16:25
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
POR FIN AHORA SI ME FUNCIONO...
muchas gracias...
por su atención coloco el codigo como quedo para futuros consultantes
Código PHP:
<html>
<?
$registro
[0]=1;
$user=1;
if (
$registro[0] == $user ){
    ECHO (
$user);
session_register("user");
}
else{
echo (
"no es");
}
?>

<A HREF="../inde.php?<?php echo SID?>">aqu&iacute;</A>
era el enlace el que tenia el error.
luego en la pagina inde se trata la varible $user como si estuviera definida en la misma pagina.


pero ahora tengo otro problema, resulta que cuando hago click en el enlace, me lleva a otra pagina donde aparece la vaiable $user pero si yo copio la direccion de la pagina, osea la url, y cierro la ventana, y luego abro otra ventana y le coloco la misma dirección, entonces, me lleva a la misma pagina y me coloca el usuario, es decir me lleva a la misma sesion, lo que no me parece muy seguro...
el experimento que hice, consistio en que buske el directorio donde almaceno mis sesiones, y borre todas las que habian...
luego abri una pagina y volvi a pegar la direccion de la sesion que hace un rato abia creado, y como lo pense, ya no inicio en la misma sesion, lo que quiere decir que ya no estaba disponible la variable $user, ¿si me hago entender?

beuno mi pregunta es, hay una forma de que el usuario una vez cierre la ventana no pueda acceder a la misma sesion, es decir de que si coloco la dirección de la sesion que inicio por primera vez ya esa sesion no exista???

espero que si ... y tambien espero susprontas respuestas
__________________
SEO en Medellin
  #8 (permalink)  
Antiguo 29/04/2004, 21:40
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
me explico

lo que me pasa simplemente es que la sesion no se cierra, hasta que reinicio el cmputador...

como soluciono esto???
necesito una pronta respuesta
__________________
SEO en Medellin
  #9 (permalink)  
Antiguo 30/04/2004, 06:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Ya te dije que usases cookeis para propagar el SID (lo recomienda PHP.net) ..

Si tu avisas que tu sistema requiere de cookies para trabajar . .allá el usuario que no las use.

Siempre pongo el mismo ejemplo .. pero: Si yo fuese paranoico de las cookies .. lo que haría es tener algún software de control de cookies (Opera creo que lo hace ya por si solo) .. así dejo pasar las que realmente sé que me hacen falta y bloquería el resto.

Sobre tu problema .. sigue leyendo la documentación oficial de PHP.net sobre sesiones .. verás que tienes una directiva que se llama:

session.gc_maxtimelife ....

Y lo de propagar el SID con session.use_trans_sid = 1 .. si usas session.use_only_cookies = 1 y un navegador que no acepte cookies .. al forzar a usar cookies .. no se van a reescribir ciertos tag's HTML automáticamente y que o cuales tags's serán reescritos para añadir el SID lo define la directiva url_rewrite_tags de sesiones ..

En fin . como veras .. PHP es altamente configurable y por eso es necesario que conozcas las directivas de PHP .ini sobre el tema .. ya que en eso influye todos los problemas que estás planteando.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 30/04/2004, 15:12
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 20 años, 11 meses
Puntos: 24
exelente ... ahora entinedo un poco mas despues dehaber leido en PHP.net
segun parece, cuando uno da click en la X para cerrar la ventana, la sesion que da abierta, por el tiempo estipulado en el php.ini, generalmente es de 24 minutos, pero tambien se puede usar un boto por ejemplo que invoquen la función session_destroy() para que destruya la sesion y todas sus varibles... (asi como aki, el boton salir).

con respecto a lo de session.gc_maxtimelife ....
no entendi mucho sobre su funcionamiento, segun leo, esta directiva se encarga de eliminar las sesiones vencidas...
con respecto a esto, me surgen varias dudas:

1. Cuando se considera que una variable esta vencida
2. Esta directiva se encarga de eleminar las sesiones automaticamente asi el usuario ya halla cerrado la ventana desde la X
3. y como la utilizo, donde encuentro mas información??

de antemano muchas gracias...

PD: cluster, ya te he hecho caso, estoy utilizando coockies...
__________________
SEO en Medellin
  #11 (permalink)  
Antiguo 02/05/2004, 11:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cita:
con respecto a lo de session.gc_maxtimelife ....
no entendi mucho sobre su funcionamiento, segun leo, esta directiva se encarga de eliminar las sesiones vencidas...
con respecto a esto, me surgen varias dudas:
Más bien .. pasa al estado "garbage" las sesiones que han expirado en ese tiempo (1440 segundos por defecto: 24 minutos). Luego depende de la directiva adecuada (no me acuerdo el nombre pero está a continuación) que indica el nº de porcentaje de veces que se ha invocado un session_start() .. serán borradas "fisicamente" dichos archivos creado de sesión con un SID no válido par ese momento.

Cita:
1. Cuando se considera que una variable esta vencida
La variable "no vecence" .. lo que vence es el SID que asocia al archivo que guarda tus variables y lo define la directiva session.gc_maxtimelife

Cita:
2. Esta directiva se encarga de eleminar las sesiones automaticamente asi el usuario ya halla cerrado la ventana desde la X
Te refieres a session_destroy()?

[quote]3. y como la utilizo, donde encuentro mas información??[/quote`]

Lo que no esté en www.php.net no es oficial .. Otra cosa es que esté mejor explicado (o te lo expliquen) en otro sítio.

Si propagas el SID en cookies .. El SID viaja en tu cookie .. si la defines (como está por defecto) el tiempo de expiración de la cookie como 0 (cero) .. al cerrar tu navegador .. el SID se pierde el PC (cliente) que lo inició .. aunque session.gc_maxtimelife todavía defina que ese SID es válido. Si propagas el SID por el URL .. es dicha directiva la que toma el total control del tiempo de duración de la sesión (en realidad será por qué el URL lo tienes "a mano" en tu historial y . en ese tiempo podrías ir directo a tu aplicación (cualquier página) con ese SID (propagado en el URL) todavía válido en ese tipo que define dicha directiva.

Tambien ten encuenta que si das a la cookie (que crea PHP para propaga el SID) un tiempo mayor al que uses en session.gc_maxtimefile .. pese que el SID todavía esté en la cookie .. dicha directiva ya habrá "matado" a tu sesión (el SID lo habrá pasado al estado "garbage" así que ya no será válido pese que se vuelva a invocar por la cookie que lo propagó).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:24.