Foros del Web » Programando para Internet » PHP »

[Consulta] SESIONES -> Versiones ?

Estas en el tema de [Consulta] SESIONES -> Versiones ? en el foro de PHP en Foros del Web. Buenas, les paso a comentar mi problema, andaba con un libro sobre PHP 5, que lo que me recomiendo para el uso de Sesiones es ...
  #1 (permalink)  
Antiguo 22/02/2011, 15:37
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Pregunta [Consulta] SESIONES -> Versiones ?

Buenas, les paso a comentar mi problema, andaba con un libro sobre PHP 5, que lo que me recomiendo para el uso de Sesiones es el siguiente:

index.php:
Código PHP:
session_start();
session_register("controlador"); 
pagina2.php:
Código PHP:
session_start();
if(!
session_is_registered("controlador"))
    
header("location: index.php"); 
Ahora bien, el error que me tira, es que esta forma esta obsoleta:

[ Deprecated: Function session_register() is deprecated ]

Bien, he leido por allí, sin entender mucho la verdad, que ahora se vuelve a usar solamente $_SESSION.
lo cual yo lo hice, puse en mi index.php $_SESSION["controlador"]; pero si se redirecciona con header me tira como si no existiesen esas variables, ahora bien, me estoy haciendo medio un lio grande con esto, lo que yo simplemente quiero hacer es:

PD. ah, vale aclarar que en Chrome y en FireFox, me terminan saliendo cosas diferentes, cuando se redirecciona, cosa que me confunde mas xD

* Si alguien ingresa a la pagina, por un lado que no fuese el Index, que redireccione al index.
* Mediante un formulario que tengo, tipo Login, guardar una variable de Sesion y usarla a medida que el usuario navega por el sitio web.


Desde ya gracias por su tiempo y espero que se entienda la consulta.
  #2 (permalink)  
Antiguo 22/02/2011, 15:41
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Consulta] SESIONES -> Versiones ?

Donde redireccionás también tenés que agregar session_start();.
  #3 (permalink)  
Antiguo 22/02/2011, 15:44
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: [Consulta] SESIONES -> Versiones ?

ahora es isset

seria
Código PHP:
Ver original
  1. if(!isset("controlador")) {
  2.     header("location: index.php");  
  3. }
  #4 (permalink)  
Antiguo 22/02/2011, 15:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Consulta] SESIONES -> Versiones ?

Cita:
Iniciado por cosobo Ver Mensaje
ahora es isset

seria
Código PHP:
Ver original
  1. if(!isset("controlador")) {
  2.     header("location: index.php");  
  3. }
No será:

Código PHP:
Ver original
  1. if(!isset($_SESSION["controlador"])) {
  2.     header("location: index.php");  
  3. }
? XD
  #5 (permalink)  
Antiguo 22/02/2011, 15:47
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

ah que rapido respondieron, gracias !!
ya mismo lo pruebo y les comento :P
  #6 (permalink)  
Antiguo 22/02/2011, 15:53
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: [Consulta] SESIONES -> Versiones ?

Cita:
Iniciado por walterdevel Ver Mensaje
No será:

Código PHP:
Ver original
  1. if(!isset($_SESSION["controlador"])) {
  2.     header("location: index.php");  
  3. }
? XD
claro claro..XD
estaba pensando en el otro codigo..
  #7 (permalink)  
Antiguo 22/02/2011, 15:58
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

a ver, paso a mostrar como tengo el codigo ahora y los resultados:

index.php
Código PHP:
<?php 
session_start
(); 
$_SESSION["controlador"];
?>
pagina2.php
Código PHP:
session_start();
if(!isset(
$_SESSION["controlador"])) 
    
header("location: index.php"); 
En el Chrome, si quiero acceder a la pagina2.php, accedo y en fireFox, va al Index, pero muestra el siguiente cartel:

[Notice: Undefined index: controlador in C:\wamp\www\ ... ]
  #8 (permalink)  
Antiguo 22/02/2011, 16:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: [Consulta] SESIONES -> Versiones ?

Puede ser un problema de cookies, el navegador no estará enviando los headers correctamente. Tenés habilitadas las cookies en firefox?
  #9 (permalink)  
Antiguo 22/02/2011, 16:11
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

pero en el Chrome no me redirige al Index, me termina cargando la Pagina2.php y me tendría que redirigir al index.php, o al menos eso intento xD
y sobre habilitar las cookies en firefox, si te digo te miento, no encuentro una opcion donde pueda habilitar o desabilitarlas >.<!
  #10 (permalink)  
Antiguo 22/02/2011, 16:24
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: [Consulta] SESIONES -> Versiones ?

segun el pedazo de código de error que as puesto, es que no esta definida la variable de sesión "controlador"
en crome no re redirige por que la sesión esta creada y tu solo le as puesto que te redireccione cuando no exista

haste un echo en y prueba en ambos navegadores a ver que contiene o si existe
Código PHP:
Ver original
  1. echo $_SESSION["controlador"];
  #11 (permalink)  
Antiguo 22/02/2011, 16:26
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

$_SESSION["controlador"]; esto no me crea la la variable de sesion controlador ?.
  #12 (permalink)  
Antiguo 22/02/2011, 16:32
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 66
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: [Consulta] SESIONES -> Versiones ?

no, para crear una variable de sesion

seria:
Código PHP:
Ver original
  1. $_SESSION["controlador"]='contenido';
  2. // o si lo quieres dejar vacio
  3. $_SESSION["controlador"]='';
  4. // o asignarle una variable
  5. $_SESSION["controlador"]=$miVariable;

si no te dará un:
Código PHP:
Ver original
  1. Notice: Undefined variable: _SESSION in
  #13 (permalink)  
Antiguo 23/02/2011, 09:13
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

ah bueno, lo estuve probando y si, me funciona bien, yo lo que hago es definirlo vacio:

$_SESSION["controlador"]='';


PERO, ahora me doy cuenta que tengo otro problema, y es que no se como controlar la 'finalización' de una session, porque supongamos que mi usuario accede a la Pagina2.php y yo lo redirijo a index.php ... perfecto, pero si el usuario cierra esa pestaña, abre otra y pone la direccion de Pagina2.php, pues, lo termina llevando a Pagina2.php, porque es como que la variable ya esta creada ... como se puede 'limpiar' o 'finalizar' el tema de las sessiones ?
  #14 (permalink)  
Antiguo 23/02/2011, 14:50
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 2 meses
Puntos: 8
Respuesta: [Consulta] SESIONES -> Versiones ?

bueno men puedes hacer esto:

En cuanto a lo que solamente se pueda entrar por el index debes hacer esto:

a todos los archivos a los cuales quieres que no se pueda entrar almenos que se este logeado.

Código PHP:
Ver original
  1. //asignas un valor a una variable $_SESSION cuando el logeo se realize sactifastoriamente...
  2. // por ejemplo: $_SESSION['Logeado']="SI";
  3.  
  4. //para asegurar que la esta variable se guarde usa el siguiente codigo:
  5.  
  6. session_white_close();     //antes de usar un header....
  7. header('Location:miarchivo.php');

luego creas tu archivo de seguridad.php


Código PHP:
Ver original
  1. <?php
  2.  
  3. if($_SESSION['Logeado']!="SI")
  4. {
  5. header('index.php');
  6. }
  7. //si no no ahces nada para que puedas usar este archivo para segurar a varios otros
  8. // y no tengas que hacer un else que redireccione a otro archivo....
  9. ?>

y a tus archivos que quieras proteger solo añades esta linea de codigo al principio...

Código PHP:
Ver original
  1. include('seguridad.php');


que pasa... al intentar ingresar a un archivo q tenga el include...
leera el codigo de dicho archivo y al no estar logeado cumplira la condicion y lo votara al index

y para eliminar tu variable de session para que no pueda entrar una vez llegado al index...

solo añade al principio de tu codigo del index esto:

Código PHP:
Ver original
  1. <?php
  2. unset($_SESSION['logeado']);
  3. //con eso destruyes el valor de la variable y no podra volver ya que no tendra valor...
  4. //haciendo que esta sea diferente de "SI" cumpliendo la condicion para mandarlo al index...
  5. ?>
  #15 (permalink)  
Antiguo 01/03/2011, 10:22
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [Consulta] SESIONES -> Versiones ?

Gracias por la respuesta, haciendo algunos retoques, pude solventar mis paginas requeridas con loguin.

abrazo!

Etiquetas: sesiones, versiones
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 07:57.