Foros del Web » Programando para Internet » PHP »

Dudas con Sesiones

Estas en el tema de Dudas con Sesiones en el foro de PHP en Foros del Web. No se mucho respecto al tema de las sesiones. Estoy haciendo una pagina de administrador, y necesito usar sesiones para hacer una conexión segura para ...
  #1 (permalink)  
Antiguo 12/12/2003, 12:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Dudas con Sesiones

No se mucho respecto al tema de las sesiones.

Estoy haciendo una pagina de administrador, y necesito usar sesiones para hacer una conexión segura para controlar el acceso a dichas páginas.En primer lugar creo la sesión y inicializo una varible para comprobar en el resto de las páginas de administracción si ha pasado por la página de comprobación.

El problema que tengo es que en las otras páginas cuando hago una comprobación para saber si esta inicializada la sessión no me guarda el valor de la varible session. No se si necesito activar alguna directiva para que funcionen las sesiones en mi servidor apache.

if ($resultado["usuario"]== $usuario && $resultado["password"]==md5($password))
{
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
// $_SESSION["autentificado"]= "SI";

session_register("autentificado");
$autentificado = "SI";


echo '<SCRIPT language="javascript">';
echo 'window.location ="administracion.php";';
echo '</SCRIPT>';

// header ("Location: administracion.php");

}

Ahh, por cierto tampoco me funciona el header y no se el motivo.
  #2 (permalink)  
Antiguo 12/12/2003, 13:21
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 15 años
Puntos: 0
Mira en el manual o en el autentificador de sesiones de Cluster, lo verás más claro, en cuanto al Header, no puede haber nada de html antes.
  #3 (permalink)  
Antiguo 12/12/2003, 15:59
 
Fecha de Ingreso: octubre-2003
Ubicación: Veracruz, México
Mensajes: 169
Antigüedad: 14 años, 1 mes
Puntos: 0
SEsiones

MIra algo muy fácil que puedes hacer es despues de hacer las operaciones que haxes con tu if es registrar las variables de sesion y posteriormente ir siguiendo la sesion con cookies o SId's personalmente prefiero los SID pero hay vexes ke con las cookies puede bastar.

if ($resultado["usuario"]== $usuario && $resultado["password"]==md5($password))


Ahora lo primero ke debes hacer antes de definir variables de sesión es iniciar la sesion:
session_start();
y registrar : $_SESSION["tuvariable"]=suvalor;

una vez tengas eso no rekieres hacer nada de esto: session_register("autentificado"); (puesto ke la variable ya ha quedado regsitrada) y a esto no le veo mucho el caso ($autentificado = "SI" ) mejor trabaja o directamente con la variable de la sesion ($_SESSION["autentificado"]=) o sino lo kieres tocar por precaución pues ya lo usaras localmente dependiendo de tus necesidades. Cuando prosigas en las siguientes páginas debes cuidar llevarte el SID de la sesión checa porke medio lo haces (si lo haxes por cookies no tienes de ke preocuparte). En cada uno de los siguientes php que requieran de que el usuario este firmado puedes usar algo como esto:

session_start();
// preguntas si no está registrada la variable en la session, en ese caso redirrecionarias al php que te hace el login

if (! session_is_registered('tuvariabledesesion')){
header("location:tuphpdelogin.php") //Estoy considerando que ambos archivos están en la misma ruta.
}

si esto es falso (tu variable de sesion esta registrada) le dejas seguir adelante.

te repito es muy imporatnte que lo tienes que haxer en TODOS los archivos PHP que requieran que estes autenticado y más aparte asegurate que al salir del sitio (en un botón de cerrar sesión o de salir del sitio) desregistres las variables de sesion:

session_unregister("tuvariabledesesion")

Espero te haya servido y haya sido claro, sino, no dudes en volver a preguntar..
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 11:23.