Foros del Web » Programando para Internet » PHP »

Problema con manejo de sesiones

Estas en el tema de Problema con manejo de sesiones en el foro de PHP en Foros del Web. mi página principal es index.php que es donde ingreso mis datos, ahi los mando por fomulario a login.php y este me redirecciona a menu.php hasta ...
  #1 (permalink)  
Antiguo 11/08/2009, 15:08
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Problema con manejo de sesiones

mi página principal es index.php que es donde ingreso mis datos, ahi los mando por fomulario a login.php y este me redirecciona a menu.php

hasta acá todo bien, ya que puedo ingresar sin ningun problema, el problema es que no me reconoce las sesiones, es decir si estoy en index.php y de manera directa ingreso a menu.php escribiendolo en la barra de navegación no me da ningun problema y me muestra todo sin haber abierto la sesion, en vez de mostrarme error y redireccionarme a index.php

mi codigo es este:


login.php
Código PHP:
$login = ("select * from usuarios where rut='$user'") or die(mysql_error()); 
    
$resp mysql_query($login);
    
    if (
$fila mysql_fetch_array($resp))
    {
        if (
$user == $fila['rut'] && $pass == $fila['contrasena'])
        {
            
$_SESSION[usuario] = $fila['rut'];
            
header("location: menu.php");
            exit();
        }
        
        else
        {
            echo 
"<script>alert('Usuario o Contraseña son Invalidos')</script>";
            echo 
"<script>history.back()</script>";
        } 


menu.php
Código PHP:
<?php
session_start
();
if (
$_SESSION[usuario] = $user['rut'])
{
    
header("location: menu.php");
}
else
{
    echo 
"<script>alert('Usted NO Tiene Permiso Para Acceder A Esta Página!')</script>";
    
header("location: index.php");
}
?>

cuál es el problema??
se agradece vuestra ayuda!
  #2 (permalink)  
Antiguo 11/08/2009, 15:20
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problema con manejo de sesiones

Creo que necesitas un session_register("usuario"); para inicializarlas y luego toma los valores con $_SESSION["usuario"], las comillas importante!

pon session_start(); en toooooodas las paginas, y asegurate que la configuracion en php.ini acepte el uso de sesiones.
  #3 (permalink)  
Antiguo 11/08/2009, 15:23
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Problema con manejo de sesiones

Ten en cuenta, que para comparar es ==, no =, ahí estás asignándole a la sesión el valor de la variable, y eso siempre va a ser true, por lo tanto te entrará tal y como te está pasando.

EDITO: Se me han adelantando, y efectivamente, usa las comillas, y si te has logueado previamente y te has desconectado tienes que hacer session_unregister y/o session_destroy
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
  #4 (permalink)  
Antiguo 11/08/2009, 15:27
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Problema con manejo de sesiones

y cómo veo eso en el php.ini??
cual es la linea? y qué tendria que decir?
  #5 (permalink)  
Antiguo 11/08/2009, 20:12
 
Fecha de Ingreso: julio-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con manejo de sesiones

es conveniente que antepongas una @ al session_start ya que si tiene session autostart puede causar problemas es decir pon

@session_start()
  #6 (permalink)  
Antiguo 12/08/2009, 09:49
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
jap muchas gracias, siempre me habia preguntado para que eran los "@"

lo que hize fue poner un echo asi que estoy mostrando la sesion actual abierta, por lo cual ahora entiendo el porque si ingreso directo a menu.php no pasa nada, y es porque si lo hago, me muestra el user de la ultima sesion realizada... :P

por ende lo que tengo que hacer ahora es cerrar la sesion!
y eso es algo que no sé hacer, porque me lei algunos aportes que hay acá y nada me funciona.

lo que tengo ahora es:

Código PHP:
<?
session_start
();
session_unset();
session_destroy();
header("location: index.php");
?>
pero no pasa na'
queda la página en blanco y no me redirecciona


bah... por la shit
me acabo de percatar que es por el <?php
como tengo desactivado los shortest no funcaba

arreglado!
saludoz

Última edición por GatorV; 12/08/2009 a las 11:51
  #7 (permalink)  
Antiguo 12/08/2009, 11:16
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Problema con manejo de sesiones

¿Seguro que arreglado?

<?
session_start();
session_unset();
session_destroy();
header("location: index.php");
?>

No lo puedes hacer así, el session_unset() y session_destroy() SOLO lo tienes que hacer cuando el usuario finaliza sesión, no siempre que la abres, porque si no estarás perdiendo siempre la sesión y no se te mantendrá mientras que navegas.

P.D: aunque si tu dices que funciona... tu mejor que yo sabrás como tienes el código!
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
  #8 (permalink)  
Antiguo 12/08/2009, 11:24
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Problema con manejo de sesiones

justamente, lo hago cuando el usuario finaliza!

el usuario ingresa, webea, explora, indaga, se aburre y sale

el boton de cerrar sesion lo tengo en menu.php, por ende solo desde ahi puede salir, lo presiona y se redirecciona a logout.php que es donde tengo ese codigo y desde ahi es redireccionado a index.php

eso es lo que tengo :P
está mal?
  #9 (permalink)  
Antiguo 12/08/2009, 13:04
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Problema con manejo de sesiones

Cita:
Iniciado por Twonex Ver Mensaje
jap muchas gracias, siempre me habia preguntado para que eran los "@"

lo que hize fue poner un echo asi que estoy mostrando la sesion actual abierta, por lo cual ahora entiendo el porque si ingreso directo a menu.php no pasa nada, y es porque si lo hago, me muestra el user de la ultima sesion realizada... :P

por ende lo que tengo que hacer ahora es cerrar la sesion!
y eso es algo que no sé hacer, porque me lei algunos aportes que hay acá y nada me funciona.

lo que tengo ahora es:

Código PHP:
<?
session_start
();
session_unset();
session_destroy();
header("location: index.php");
?>
pero no pasa na'
queda la página en blanco y no me redirecciona


bah... por la shit
me acabo de percatar que es por el <?php
como tengo desactivado los shortest no funcaba

arreglado!
saludoz
No, no está mal si lo tienes así, lo que pasa que aquí parecía que lo tenías todo junto, por eso el motivo de mi comentario, pero si lo tienes como dices ahora está bien.
__________________
http://www.controldegastos.com, acepto sugerencias para el sitio.
Repetir conmingo: "tengo que dedicar más tiempo a gozar de placer"
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 12:51.