Foros del Web » Programando para Internet » PHP »

problemas con las sesiones en php

Estas en el tema de problemas con las sesiones en php en el foro de PHP en Foros del Web. Hola tengo un problema he buscado en manuales pero no he encontrado uno lo suficient bueno para aprender, aqui va mi pregunta: Lo que quiero ...
  #1 (permalink)  
Antiguo 03/06/2003, 12:48
 
Fecha de Ingreso: junio-2003
Mensajes: 24
Antigüedad: 20 años, 10 meses
Puntos: 0
problemas con las sesiones en php

Hola tengo un problema he buscado en manuales pero no he encontrado uno lo suficient bueno para aprender, aqui va mi pregunta:

Lo que quiero hacer es una pagina en la cual entre con una contraseña y arriba de la pagina osea en una frames hay un menu pero no quiero que entre en ese menu sin antes ingresar con una contraseña, en la parte de arriba son puros links.
la ´pregunta es el archivo en el cual a $_SESSION le asigno un verdadero no se si tiene que estar relasionado con el archivo donde me muestra los datos del usuario

Hago esto (no es exacto porqeu hago otras cosas,pero esto es lo importante)

1.php

<?php
session_start();
if(datos correcto)
$_SESSION['usuario']='true';
else
session_destroy();
?>

2.php
session_start()
if($_SESSION['usuario']==''conectado)
muestra los datos
else
no ha iniciado session


-------------------------

los archivos nunca se relacionan
----------
Pero no me funciona


espero que entiendas mi pregunta si no es asi mi correo es [email protected]

porfa si alguin seco pa php puede ayudarme se lo agradeseria mucho
  #2 (permalink)  
Antiguo 03/06/2003, 12:58
 
Fecha de Ingreso: junio-2003
Mensajes: 22
Antigüedad: 20 años, 10 meses
Puntos: 0
lo quieres hacer con base de datos
__________________
:aplauso:
  #3 (permalink)  
Antiguo 03/06/2003, 14:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si quieres usar "true" como "booleano" .. debes usarlo como constante y no como un string como así lo haces si usas comillas (dobles o simples) ..

Deberería ser:

$_SESSION['usuario']=true;

Para que puedas hacer por ejemplo (en tu 2.php) cosas como

Código PHP:
if ($_SESSION['usuario']){
  echo 
"usuario autentificado .. ¿Cual .. no sabemos pues le distes un booleano en lugar de guardar por ejemplo el nombre del usuario autentificado";
} else {
  echo 
"no está registrada la sesión";

A todo esto .. de tu 1.php a tu 2.php se ha de pasar via algún redireccionamiento, link o formulario .. Si accedes a 2.php directamente se creará una nueva sesión con otro SID diferente al que se creó en tu 1.php ..

El SID se ha de propagar en esos links, redireccionamientos o formularios que emplees .. Si no lo haces tu manualmente, deja que PHP lo haga por tí . .pero asegurate que -alguien- lo haga (seas tu o PHP) ..

Al "parecer" asumes que el SID lo va a propagar PHP (no se vé el resto del código q usas .. pero parece ..). Así que revisa la directivas de tu php.ini:

session.use_trans_sid = 1 (debe estar a 1)

Y opcionalmente:

session.use_cookie = 1

(por si usas redireccionamientos tipo header(location ..) o javascripts o <meta> de refresh .. y no propagas tú el SID en esos links .. Esta directiva requiere a su vez de un navegador que acepte cookies.)

Un saludo,

pd: sería recomendable que pusieras el resto de código que usas . .para ver si redireccionas de tu 1.php a 2.php y cómo .. Previamente . please revisa esa configuración de PHP ...
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 03/06/2003 a las 14:56
  #4 (permalink)  
Antiguo 03/06/2003, 16:02
 
Fecha de Ingreso: junio-2003
Mensajes: 24
Antigüedad: 20 años, 10 meses
Puntos: 0
no me queda claro lo de las sesiones para Cluster

voy a tratr de explicar de nuevo lo que quiero hacer:

para que veas mas o menos lo que quiero hacer

200.10.19.199/carlos/html_pruebas/frameset.html (solo solo preste libro una vez que haya iniciado session) usuario carlos clave 100




lo primero que hago es ejecutar este archivo:

frameset.html
<frameset>
<frame name arriba src=menu.html>
<frame name abajo src=usuario.html>

menu.html

<a href=ingresar_codigo_libro.php target=abajo>presta</a>


usuario.html

<form action=ingreso_ok.php>
y envio los datos

ingreso_ok.php
<?php
session_start();
me conecto a la base de datos....
if(datos correctos)
{
bienvenido usuario: $resultado['nombre'];
$_SESSION['usuario']=true
}

else
{
session_destrory();
echo no ha iniciado sesion

}




prestar_libro.php

session_start()

if($_SESSION['usuario'])
muestra los datos
else
no ha iniciado session


no se como enlazar o comunicar el archivo menu.html que es donde esta el link para que sepa si ya inicio una session o no
ha el archivo prestar_libro.php


espero que hora te que de un poco mas clara mi duda.

Lo que estoy haciendo no es nada tan interesante es solo para aprender, trto de hacer un programa para prestar libros a travez de la web (solo un prototipo)
  #5 (permalink)  
Antiguo 03/06/2003, 16:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues lo que pasa que tu SID parece que no se está propagando .. ¿Mirastes yá la configuración de tu PHP.ini que te mencioné? ..

Porqué lo que es tu código (tu programación) no lo haces .. Y .. usando frames como estas usando debes de usar a la fuerza propagación del SID en cookies + propagar el SID en módo automático con las dos directivas de sesiones que te mencioné. O bien propagar manualmente el SID en todos tus formularios y demas links que uses.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 03/06/2003 a las 16:17
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 17:28.