proteger pagina con contraseña
Hola, me gustaria proteger una pagina con contraseña. Las contraseñas deben de ir en un mysql. Alguien sabe donde puedo encontrar un ejemplo?
1.- Un archivo HTML que contenga un formulario de ingreso, tal como el que hicimos en el tutorial anterior.
2.- Un archivo PHP que, recibidos los datos del formulario, se conectará a la base de datos y corroborará que los datos existan y que estos sean correctos.
3.- Y finalmente otro archivo PHP que redirigirá a los usuarios dependiendo del resultado de la consulta hecha en el nº 2. Si están bien los datos los llevará a la página que queramos mostrar, y de lo contrario, mostrará un mensaje de error y los llevará de vuelta a la página del nº 1.
1. tiene que hacer un formulario donde solicite usuario y contraseña
A continuación, definiremos una tabla en la base de datos la cual almacenará los datos correspondientes a todos los usuarios autorizados a entrar a nuestra página. Para definir esta tabla e ingresar algunos datos de prueba, lo más recomendable es usar un sistema que todos los servicios de hosting ofrecen y que también es obtenido haciendo una instalación local (mediante el uso de algún software como XAMPP), que es phpMyAdmin. Este programa nos permite trabajar directamente sobre la base de datos, dandonos entre otras funcionalidades, la posibilidad de mantener datos, agregar usuarios y ver la estructura actual de nuestra BD.
Brevemente puedo decir que phpMyAdmin trabaja de 2 formas sobre la base de datos: Una mediante el interfaz gráfico el cual ofrece un modo bastante amigable para la creación y mantención de las estructuras y los datos. El otro es mediante consultas SQL, el cual si tienen el conocimiento del lenguaje es recomendable utilizar.
2.- Una vez adentro de PHPMyAdmin, crearemos una base de datos con el nombre que Uds. quieran y luego una tabla llamada “usuario” y dentro de ella definiremos los siguientes campos:
Usuario => Varchar (10)
Clave => Varchar (10)
Nombre => Varchar (40)
Además definiremos como “clave primaria” de la tabla al campo “usuario”
.- Con nuestra tabla definida, procederemos a ingresar datos a la tabla, al igual que el paso anterior, esto se puede hacer mediante interfaz o por una consulta SQL. Ingresaremos estos datos:
Usuario => demo
Clave => demo
Nombre => Usuario de prueba
Para ingresar los datos mediante interfaz, debemos marcar la tabla y hacer click al botón “Examinar” que esta justo al lado y luego arriba al que dice “Insertar”.
Botón Insertar
Con esto tenemos un usuario ingresado en nuestra base de datos y podremos hacer uso de ese registro para probar nuestro sistema.
4.- A continuación construiremos la página en PHP que validará los datos recogidos a través del formulario:
Para esto, crearemos una página PHP en Dreamweaver, la cual guardaremos como “ingreso.php” e insertaremos el siguiente código antes de la etiqueta <HTML>:
<?
session_start();
$_SESSION["user"]=$_POST['usuario'];
$_SESSION["pass"]=$_POST['clave'];
$_SESSION["falla"]=0;
?>
<meta http-equiv=”refresh” content=”3; url=ingreso2.php” />
La explicación del código es la siguiente:
<?: Marca el inicio de un código ejecutable PHP.
session_start();: Se inicia una sesión para el usuario que está ingresando a nuestra página.
$_SESSION["user"]=$_POST['usuario'];: Lo que hacemos aquí es tomar el valor “usuario” enviado desde el formulario (lo recogemos en el vector $_POST, el cual almacena todos los valores enviados por URL desde un formulario) y se lo asigna al valor “user” en el vector $_SESSION, el cual se encarga de almacenar variables que podrán ser accedidas desde cualquier página mientras la sesión exista o el usuario se mantenga en la página.
$_SESSION["pass"]=$_POST['clave'];: Lo mismo que el caso anterior pero con los valores correspondientes.
$_SESSION["falla"]=0;: Creamos una variable llamada “falla” dentro del vector de sesión, la cual usaremos como bandera que marcará cualquier error que se produzca durante el proceso de validación. Le asignamos un valor 0, pero en verdad podemos darle el valor que queramos, ya que la verificación final con esta variable la haremos mediante una comparación con su valor original.
?>: Cerramos el código ejecutable PHP
<meta http-equiv=”refresh” content=”3; url=ingreso2.php” />: Esta etiqueta lo que hará es redireccionar la página actual (”ingreso.php”) a la página “ingreso2.php” cuando transcurran 3 segundos. (El valor del parametro content, que pueden modificar según deseen).
5.- Continuando con el código que insertaremos en nuestra página “ingreso.php”, ahora pondremos esto luego de la etiqueta <BODY>:
(Las explicaciones del codigo van entremedio marcadas en negrita, cursiva y con un /* y */)
<?
$user=$_POST['usuario'];
$pass=$_POST['clave'];
/* Asignamos a las variables $user y $pass los valores “usuario” y “clave” recogidos de nuestro formulario de ingreso de la página HTML. */
if(empty($user))
{
echo “No ha ingresado un nombre de usuario. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
}
/* Utilizaremos la función empty de PHP mediante la cual preguntaremos si nuestra variable $user (la que contiene el valor de usuario del formulario) se encuentra vacia, lo que significaría que el usuario no ingreso nada en el campo. Si este fuera el caso, desplegaríamos un mensaje en la página con “echo” y luego cambiariamos el valor de nuestra variable “falla” (la bandera definida en el vector de sesión) a 1. En caso de que el usuario no este vacío, pasamos al else y revisamos lo demás */
else
{
if(empty($pass))
{
echo “No ha ingresado una clave. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
}
/* Haremos la misma comprobación anterior pero en este caso con la variable $pass (que almacena el valor de clave del formulario). En caso de que no este vacía, pasamos al else */
else
{
$con=mysql_connect(”host”,”user”,”password”);
/* Declaramos una variable llamada $con a la que le almacenaremos el resultado de la función mysql_connect, la cual se encarga de establecer una conexión entre nuestra página PHP y nuestra base de datos MySQL para poder realizar las consultas que necesitamos para validar los datos. Esta función utiliza 3 parametros y devuelve un resultado de tipo entero (int):
Host: La dirección del servidor donde tenemos alojada nuestra base de datos. Comúnmente este valor debiera ser localhost (en caso de que esta página la ejecutemos en el mismo servidor donde esta alojada la BD), si no, es un dato que su proveedor de hosting debería darles.
User: El usuario con el que ingresan a la BD. Tambien otorgado por su proveedor de hosting.
Password: Contraseña para ingresar a la BD. Lo mismo que el caso anterior. */
mysql_select_db(”database”,$con);
/* Llamamos a la función mysql_select_db la cual nos ayudará a seleccionar nuestra base de datos (la cual esta dentro de la base de datos) y que requiere de 2 parametros:
Database: Nombre de nuestra base de datos. (La que creamos al principio).
Identificador de conexión: El cual le otorga los datos de conexión a la función, en nuestro caso la variable $con. */
$sql=”SELECT usuario, clave, nombre FROM usuario WHERE usuario=’$user’”;
/* Definimos una variable $sql , la cual guardará la consulta que haremos en la base de datos. En este caso, pediremos seleccionar el usuario, la clave y el nombre correspondientes al registro del usuario que se ingresó mediante el formulario */
$resultado=mysql_query($sql,$con);
/* Definimos una variable llamada $resultado en la cual almacenaremos, valga la redundancia, el resultado de la ejecución de nuestra consulta mediante la función mysql_query, la cual requiere de 2 parametros: la consulta recien definida, y el identificador de conexión que definimos anteriormente. */
if(!$resultado)
{
$error=mysql_error();
print $error;
$_SESSION["falla"]=1;
exit();
}
/* Luego preguntamos mediante un if si no hubo resultado a la ejecución de la consulta y almacenamos en la variable $error la falla otorgada por la base de datos para presentarla en la página mediante la sentencia print (que es similar a “echo”) y cambiamos el valor de la variable “falla” de nuestro vector de sesión. Finalmente hacemos uso de la función exit(); para que nuestro código termine de ejecutarse aquí y no sigan corriendo las líneas siguientes. Este paso puede obviarse ya que a los usuarios no es necesario enseñarles el error que nos da la base de datos, yo decidí incluirlo para que uds. puedan probar e informarse de las distintas razones por las que puede haber una falla en este proceso. */
if(mysql_affected_rows()==0)
{
echo “El usuario no fue encontrado. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
exit();
}
/* Luego mediante otro if , hacemos un llamado a la función mysql_affected_rows() la cual se encarga de notificar si es que la consulta no afecto a ninguna fila de nuestra tabla (o sea, no hubo coincidencias), esta función retorna un entero, que es 0 en caso de no haber filas afectadas. En caso de que así sea desplegamos un mensaje informando que el usuario no fue encontrado mediante la sentencia “echo”, cambiamos el valor de la variable falla del vector de sesión y finalmente salimos del código mediante la función exit();. Si el resultado de la función no es cero, significa que hubo coincidencias y pasamos al else */
else
{
$row=mysql_fetch_array($resultado);
/* Definimos una variable $row y a esta le asignamos el resultado de la función mysql_fetch_array, la que utiliza como parametro $resultado (el resultado de la consulta ejecutada). Este paso es necesario, ya que cuando hacemos una consulta sobre una tabla de una base de datos, en caso de haber coincidencia, estos datos no están disponibles para que nosotros los podamos manipular, si no que se seleccionan de forma “virtual”. Normalmente las bases de datos definen cursores, los cuales al hacer un fetch, extraen los datos y nos permiten manipularlos de una forma más “fisica” por decirlo de alguna forma. En este caso, la variable $row se transformará en un vector, con posiciones de nombre igual a cada uno de los campos de la fila, los cuales podremos comparar. */
$nombre=$row['nombre'];
/* Definimos una variable $nombre y a este le asignamos el valor de la posición “nombre” del vector $row, o sea, el campo nombre extraído de la coincidencia de la tabla usuario */
if($user==$row['usuario'])
{
if($pass==$row['clave'])
{
echo “<b>Bienvenido $nombre</b>. <br> Espere mientras es redirigido”;
$_SESSION["nombre"]=$nombre;
}
else
{
echo “Hay un error en la clave. <br> Espere mientras es redirigido”;
$_SESSION["falla"]=1;
}
}
else
{
echo “Hay un error en el nombre de usuario. <br> Espere mientras es redirigido”;
$_SESSION["falla"]=1;
}
/* Y Finalmente mediante una serie de if y else, comparamos los valores recibidos por el formulario (almacenados en las variables $user y $pass) con los extraídos de la fila de la tabla de la base de datos (almacenados en el vector $row). En caso de coincidir el nombre de usuario y la contraseña, desplegamos un mensaje dandole la bienvenida al usuario con una sentencia echo (al usar el mensaje con la variable $nombre, dejamos definido un mensaje que cambiará dependiendo del nombre de cada usuario que entre) y le informaremos que será redirigido, para finalmente registrar en el vector de sesión el nombre del usuario, en caso de que necesitemos usarlo más adelante. De lo contrario mostraremos los correspondientes mensajes de error y marcaremos la variable falla para más adelante. */
}
}
}
?>
6.- Creamos nuestra página PHP e insertamos el siguiente código antes de la etiqueta <HTML>:
La explicación del código entremedio, en negritas, cursiva y entre /* */:
<?
session_start();
/* Iniciamos sesión dentro de esta página también mediante la función session_start(); */
if($_SESSION["falla"]==0)
{
$_SESSION["autorizacion"]=”si”;
header(”Location: pagina-de-destino.php”);
}
/* Lo primero que hacemos es preguntar si la variable “falla” del vector de sesión tiene valor igual a 0. Si esto es así significa que paso todo el proceso de validación sin errores, ya que en la página anterior ante cualquier problema le asignamos otro valor. En caso de que sea así, hacemos una redirección por PHP mediante “header” y dentro de Location ponemos la página de destino donde llegaran los usuarios autorizados. Además definimos una variable llamada “autorización” y le asignamos el valor “si”. Este variable nos permitirá hacer un manejo de sesiones en cualquiera de las páginas que sigan preguntando simplemente si esta activado el valor si, y de esa forma mostrar el contenido autorizado */
else
{
unset($_SESSION["falla"]);
session_destroy();
header(”Location: pagina-de-formulario.html”);
}
?>
/* En caso de que no sea igual a cero el valor, significa que hubo un problema de validación y por lo tanto el usuario no esta autorizado. Por lo que borramos la variable falla del vector de sesión mediante la funcion “unset”, y luego destruimos la sesión del usuario mediante la función session_destroy();, para que así ningun valor de la sesión quede almacenado en caso de futuros ingresos. Finalmente redirigirmos mediante header a la página inicial de ingreso de formulario. */
7.- En nuestra página de destino (la que viene después del proceso de validación) solo necesitamos insertar el siguiente código después de la etiqueta <BODY>:
<?
if($_SESSION["autorizacion"]==”si”)
{
?>
y aquí desplegamos el contenido para los usuarios autorizados. Una vez que terminemos de desplegar el contenido, al final de eso abrimos código nuevamente:
<?
}
else
{
echo “Usted no esta autorizado para ver este contenido. Por favor” ?> <a href=”pagina-de-formulario.html”><? echo “Identifiquese” ?></a>.
}
?>
Nota: En el caso del else, es necesario cerrar el codigo PHP antes de ingresar código HTML (como el <a href ), por eso cerramos y volvimos a abrir para seguir con el texto.
Como notas No es muy dificil solo esdarlte la idea y tener pasiencia XD.
pero si quier algo mas experto puede buscar en google : autentificación de usuario en PHP
y encotraras otros mas compplejos y mas completos ..
Espero te puede haber ayudado
2.- Un archivo PHP que, recibidos los datos del formulario, se conectará a la base de datos y corroborará que los datos existan y que estos sean correctos.
3.- Y finalmente otro archivo PHP que redirigirá a los usuarios dependiendo del resultado de la consulta hecha en el nº 2. Si están bien los datos los llevará a la página que queramos mostrar, y de lo contrario, mostrará un mensaje de error y los llevará de vuelta a la página del nº 1.
1. tiene que hacer un formulario donde solicite usuario y contraseña
A continuación, definiremos una tabla en la base de datos la cual almacenará los datos correspondientes a todos los usuarios autorizados a entrar a nuestra página. Para definir esta tabla e ingresar algunos datos de prueba, lo más recomendable es usar un sistema que todos los servicios de hosting ofrecen y que también es obtenido haciendo una instalación local (mediante el uso de algún software como XAMPP), que es phpMyAdmin. Este programa nos permite trabajar directamente sobre la base de datos, dandonos entre otras funcionalidades, la posibilidad de mantener datos, agregar usuarios y ver la estructura actual de nuestra BD.
Brevemente puedo decir que phpMyAdmin trabaja de 2 formas sobre la base de datos: Una mediante el interfaz gráfico el cual ofrece un modo bastante amigable para la creación y mantención de las estructuras y los datos. El otro es mediante consultas SQL, el cual si tienen el conocimiento del lenguaje es recomendable utilizar.
2.- Una vez adentro de PHPMyAdmin, crearemos una base de datos con el nombre que Uds. quieran y luego una tabla llamada “usuario” y dentro de ella definiremos los siguientes campos:
Usuario => Varchar (10)
Clave => Varchar (10)
Nombre => Varchar (40)
Además definiremos como “clave primaria” de la tabla al campo “usuario”
.- Con nuestra tabla definida, procederemos a ingresar datos a la tabla, al igual que el paso anterior, esto se puede hacer mediante interfaz o por una consulta SQL. Ingresaremos estos datos:
Usuario => demo
Clave => demo
Nombre => Usuario de prueba
Para ingresar los datos mediante interfaz, debemos marcar la tabla y hacer click al botón “Examinar” que esta justo al lado y luego arriba al que dice “Insertar”.
Botón Insertar
Con esto tenemos un usuario ingresado en nuestra base de datos y podremos hacer uso de ese registro para probar nuestro sistema.
4.- A continuación construiremos la página en PHP que validará los datos recogidos a través del formulario:
Para esto, crearemos una página PHP en Dreamweaver, la cual guardaremos como “ingreso.php” e insertaremos el siguiente código antes de la etiqueta <HTML>:
<?
session_start();
$_SESSION["user"]=$_POST['usuario'];
$_SESSION["pass"]=$_POST['clave'];
$_SESSION["falla"]=0;
?>
<meta http-equiv=”refresh” content=”3; url=ingreso2.php” />
La explicación del código es la siguiente:
<?: Marca el inicio de un código ejecutable PHP.
session_start();: Se inicia una sesión para el usuario que está ingresando a nuestra página.
$_SESSION["user"]=$_POST['usuario'];: Lo que hacemos aquí es tomar el valor “usuario” enviado desde el formulario (lo recogemos en el vector $_POST, el cual almacena todos los valores enviados por URL desde un formulario) y se lo asigna al valor “user” en el vector $_SESSION, el cual se encarga de almacenar variables que podrán ser accedidas desde cualquier página mientras la sesión exista o el usuario se mantenga en la página.
$_SESSION["pass"]=$_POST['clave'];: Lo mismo que el caso anterior pero con los valores correspondientes.
$_SESSION["falla"]=0;: Creamos una variable llamada “falla” dentro del vector de sesión, la cual usaremos como bandera que marcará cualquier error que se produzca durante el proceso de validación. Le asignamos un valor 0, pero en verdad podemos darle el valor que queramos, ya que la verificación final con esta variable la haremos mediante una comparación con su valor original.
?>: Cerramos el código ejecutable PHP
<meta http-equiv=”refresh” content=”3; url=ingreso2.php” />: Esta etiqueta lo que hará es redireccionar la página actual (”ingreso.php”) a la página “ingreso2.php” cuando transcurran 3 segundos. (El valor del parametro content, que pueden modificar según deseen).
5.- Continuando con el código que insertaremos en nuestra página “ingreso.php”, ahora pondremos esto luego de la etiqueta <BODY>:
(Las explicaciones del codigo van entremedio marcadas en negrita, cursiva y con un /* y */)
<?
$user=$_POST['usuario'];
$pass=$_POST['clave'];
/* Asignamos a las variables $user y $pass los valores “usuario” y “clave” recogidos de nuestro formulario de ingreso de la página HTML. */
if(empty($user))
{
echo “No ha ingresado un nombre de usuario. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
}
/* Utilizaremos la función empty de PHP mediante la cual preguntaremos si nuestra variable $user (la que contiene el valor de usuario del formulario) se encuentra vacia, lo que significaría que el usuario no ingreso nada en el campo. Si este fuera el caso, desplegaríamos un mensaje en la página con “echo” y luego cambiariamos el valor de nuestra variable “falla” (la bandera definida en el vector de sesión) a 1. En caso de que el usuario no este vacío, pasamos al else y revisamos lo demás */
else
{
if(empty($pass))
{
echo “No ha ingresado una clave. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
}
/* Haremos la misma comprobación anterior pero en este caso con la variable $pass (que almacena el valor de clave del formulario). En caso de que no este vacía, pasamos al else */
else
{
$con=mysql_connect(”host”,”user”,”password”);
/* Declaramos una variable llamada $con a la que le almacenaremos el resultado de la función mysql_connect, la cual se encarga de establecer una conexión entre nuestra página PHP y nuestra base de datos MySQL para poder realizar las consultas que necesitamos para validar los datos. Esta función utiliza 3 parametros y devuelve un resultado de tipo entero (int):
Host: La dirección del servidor donde tenemos alojada nuestra base de datos. Comúnmente este valor debiera ser localhost (en caso de que esta página la ejecutemos en el mismo servidor donde esta alojada la BD), si no, es un dato que su proveedor de hosting debería darles.
User: El usuario con el que ingresan a la BD. Tambien otorgado por su proveedor de hosting.
Password: Contraseña para ingresar a la BD. Lo mismo que el caso anterior. */
mysql_select_db(”database”,$con);
/* Llamamos a la función mysql_select_db la cual nos ayudará a seleccionar nuestra base de datos (la cual esta dentro de la base de datos) y que requiere de 2 parametros:
Database: Nombre de nuestra base de datos. (La que creamos al principio).
Identificador de conexión: El cual le otorga los datos de conexión a la función, en nuestro caso la variable $con. */
$sql=”SELECT usuario, clave, nombre FROM usuario WHERE usuario=’$user’”;
/* Definimos una variable $sql , la cual guardará la consulta que haremos en la base de datos. En este caso, pediremos seleccionar el usuario, la clave y el nombre correspondientes al registro del usuario que se ingresó mediante el formulario */
$resultado=mysql_query($sql,$con);
/* Definimos una variable llamada $resultado en la cual almacenaremos, valga la redundancia, el resultado de la ejecución de nuestra consulta mediante la función mysql_query, la cual requiere de 2 parametros: la consulta recien definida, y el identificador de conexión que definimos anteriormente. */
if(!$resultado)
{
$error=mysql_error();
print $error;
$_SESSION["falla"]=1;
exit();
}
/* Luego preguntamos mediante un if si no hubo resultado a la ejecución de la consulta y almacenamos en la variable $error la falla otorgada por la base de datos para presentarla en la página mediante la sentencia print (que es similar a “echo”) y cambiamos el valor de la variable “falla” de nuestro vector de sesión. Finalmente hacemos uso de la función exit(); para que nuestro código termine de ejecutarse aquí y no sigan corriendo las líneas siguientes. Este paso puede obviarse ya que a los usuarios no es necesario enseñarles el error que nos da la base de datos, yo decidí incluirlo para que uds. puedan probar e informarse de las distintas razones por las que puede haber una falla en este proceso. */
if(mysql_affected_rows()==0)
{
echo “El usuario no fue encontrado. <br> Sera redirigido de vuelta.”;
$_SESSION["falla"]=1;
exit();
}
/* Luego mediante otro if , hacemos un llamado a la función mysql_affected_rows() la cual se encarga de notificar si es que la consulta no afecto a ninguna fila de nuestra tabla (o sea, no hubo coincidencias), esta función retorna un entero, que es 0 en caso de no haber filas afectadas. En caso de que así sea desplegamos un mensaje informando que el usuario no fue encontrado mediante la sentencia “echo”, cambiamos el valor de la variable falla del vector de sesión y finalmente salimos del código mediante la función exit();. Si el resultado de la función no es cero, significa que hubo coincidencias y pasamos al else */
else
{
$row=mysql_fetch_array($resultado);
/* Definimos una variable $row y a esta le asignamos el resultado de la función mysql_fetch_array, la que utiliza como parametro $resultado (el resultado de la consulta ejecutada). Este paso es necesario, ya que cuando hacemos una consulta sobre una tabla de una base de datos, en caso de haber coincidencia, estos datos no están disponibles para que nosotros los podamos manipular, si no que se seleccionan de forma “virtual”. Normalmente las bases de datos definen cursores, los cuales al hacer un fetch, extraen los datos y nos permiten manipularlos de una forma más “fisica” por decirlo de alguna forma. En este caso, la variable $row se transformará en un vector, con posiciones de nombre igual a cada uno de los campos de la fila, los cuales podremos comparar. */
$nombre=$row['nombre'];
/* Definimos una variable $nombre y a este le asignamos el valor de la posición “nombre” del vector $row, o sea, el campo nombre extraído de la coincidencia de la tabla usuario */
if($user==$row['usuario'])
{
if($pass==$row['clave'])
{
echo “<b>Bienvenido $nombre</b>. <br> Espere mientras es redirigido”;
$_SESSION["nombre"]=$nombre;
}
else
{
echo “Hay un error en la clave. <br> Espere mientras es redirigido”;
$_SESSION["falla"]=1;
}
}
else
{
echo “Hay un error en el nombre de usuario. <br> Espere mientras es redirigido”;
$_SESSION["falla"]=1;
}
/* Y Finalmente mediante una serie de if y else, comparamos los valores recibidos por el formulario (almacenados en las variables $user y $pass) con los extraídos de la fila de la tabla de la base de datos (almacenados en el vector $row). En caso de coincidir el nombre de usuario y la contraseña, desplegamos un mensaje dandole la bienvenida al usuario con una sentencia echo (al usar el mensaje con la variable $nombre, dejamos definido un mensaje que cambiará dependiendo del nombre de cada usuario que entre) y le informaremos que será redirigido, para finalmente registrar en el vector de sesión el nombre del usuario, en caso de que necesitemos usarlo más adelante. De lo contrario mostraremos los correspondientes mensajes de error y marcaremos la variable falla para más adelante. */
}
}
}
?>
6.- Creamos nuestra página PHP e insertamos el siguiente código antes de la etiqueta <HTML>:
La explicación del código entremedio, en negritas, cursiva y entre /* */:
<?
session_start();
/* Iniciamos sesión dentro de esta página también mediante la función session_start(); */
if($_SESSION["falla"]==0)
{
$_SESSION["autorizacion"]=”si”;
header(”Location: pagina-de-destino.php”);
}
/* Lo primero que hacemos es preguntar si la variable “falla” del vector de sesión tiene valor igual a 0. Si esto es así significa que paso todo el proceso de validación sin errores, ya que en la página anterior ante cualquier problema le asignamos otro valor. En caso de que sea así, hacemos una redirección por PHP mediante “header” y dentro de Location ponemos la página de destino donde llegaran los usuarios autorizados. Además definimos una variable llamada “autorización” y le asignamos el valor “si”. Este variable nos permitirá hacer un manejo de sesiones en cualquiera de las páginas que sigan preguntando simplemente si esta activado el valor si, y de esa forma mostrar el contenido autorizado */
else
{
unset($_SESSION["falla"]);
session_destroy();
header(”Location: pagina-de-formulario.html”);
}
?>
/* En caso de que no sea igual a cero el valor, significa que hubo un problema de validación y por lo tanto el usuario no esta autorizado. Por lo que borramos la variable falla del vector de sesión mediante la funcion “unset”, y luego destruimos la sesión del usuario mediante la función session_destroy();, para que así ningun valor de la sesión quede almacenado en caso de futuros ingresos. Finalmente redirigirmos mediante header a la página inicial de ingreso de formulario. */
7.- En nuestra página de destino (la que viene después del proceso de validación) solo necesitamos insertar el siguiente código después de la etiqueta <BODY>:
<?
if($_SESSION["autorizacion"]==”si”)
{
?>
y aquí desplegamos el contenido para los usuarios autorizados. Una vez que terminemos de desplegar el contenido, al final de eso abrimos código nuevamente:
<?
}
else
{
echo “Usted no esta autorizado para ver este contenido. Por favor” ?> <a href=”pagina-de-formulario.html”><? echo “Identifiquese” ?></a>.
}
?>
Nota: En el caso del else, es necesario cerrar el codigo PHP antes de ingresar código HTML (como el <a href ), por eso cerramos y volvimos a abrir para seguir con el texto.
Como notas No es muy dificil solo esdarlte la idea y tener pasiencia XD.
pero si quier algo mas experto puede buscar en google : autentificación de usuario en PHP
y encotraras otros mas compplejos y mas completos ..
Espero te puede haber ayudado