Tengo una página en la cual para acceder a una sección de la web llamada infoexclusiva.php hay que estar registrado, si el usuaro no se ha logueado y desea acceder a infoexclusiva.php lo envía directo a la página login.php una vez que se loguea redirecciona a la página infoexclusiva.php automáticamente utilizando la sentencia:
header ("Location: infoexclusiva.php");
pero ahora no solo quiero que la seguridad se aplique a la página infoexclusiva.php sinó a otras dos una un panel en el cual el usuario puede cambiar la contraseña y otra en la cual el usuario puede actualizar sus datos, pero no se como hacer eso, algo así como las webs en las que puedes ver el contenido de algunas páginas pero para acceder a las descargas o acceder a los links de descargas tienes q estar logueado. Una vez que el usuario se loguea regresa a la página que el usuario estaba viendo.
A continuación pego el código que utilizo.
seguridad.php
Código:
check_login.php//si es necesario cambiar la config. del php.ini desde el script ini_set("session.use_only_cookies","1"); ini_set("session.use_trans_sid","0"); session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); //cambiamos la duración a la cookie de la sesión session_name("loginUsuario"); session_start(); ob_start(); if( !isset( $_SESSION['autentificado'] ) or $_SESSION["autentificado"] != 'SI' ) { unset( $_SESSION['autentificado'] ); session_destroy(); header("Location: login.php"); }
Código:
Espero me puedan dar algunas pistas para solucionar esta duda.include("conectar.php"); //si es necesario cambiar la config. del php.ini desde el script ini_set("session.use_only_cookies","1"); ini_set("session.use_trans_sid","0"); //adquiero los datos del formulario $usuario= ($_POST["usuario"]); $contrasena=($_POST["contrasena"]); //Sentencia SQL para buscar un usuario con esos datos y que tenga estado habilitado $ssql = "SELECT * FROM USUARIOS WHERE nombre_usuario='$usuario' and clave_usuario='$contrasena' and habilitado=1"; //Ejecuto la sentencia $rs = mysql_query($ssql,$conn); //vemos si el usuario y contraseña es váildo //si la ejecución de la sentencia SQL nos da algún resultado //es que si que existe esa conbinación usuario/contraseña if (mysql_num_rows($rs)!=0){ //usuario y contraseña válidos //defino una sesion y guardo datos session_name("loginUsuario"); //asignamos un nombre a la sesión para guardar diferentes datos session_start(); // inicio la sesión session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0); //cambiamos la duración a la cookie de la sesión $_SESSION["autentificado"]= "SI"; //se ha definido que la sesion está autorizada $_SESSION["ultimoAcceso"]=date("Y-n-j H:i:s"); //defino la fecha y hora de inicio de sesión en formato aaaa-mm-dd hh:mm:ss header ("Location: infoexclusiva.php"); }else { //si no existe le mando otra vez a la portada header("Location: login.php?errorusuario=si"); } mysql_free_result($rs); mysql_close($conn);
Gracias y muchos saludos.
David