Formulario para restringir el acceso a páginas
Este formulario es importante sobre todo cuando queremos que cierta página no sea accesada por caulquier usuario, en esta ocación lo haremos de forma sencilla y en una proxima clase veremos como trarbajar con inicios de sesión.
Es bueno aclarar que el código HTML esta azúl, el código PHP esta en rojo y los comentarios en color verde.
Validamos el formulario.
Realizamos la consulta. En este caso condicionamos usando WHERE que el campo Usuario sea igual a la variable $usuario.
Asignamos al array $reg el contenido de la tabla.
Con este código evaluamos si la consulta falló, de ser así mostramos un mensaje y luego un link (este esta escrito en código javascript) para volver atrás.
Finalizamos el if inicial.
Finalizamos PHP.
Como siempre les dejo el código completo para que lo prueben y comenten sus resultados.
<?
if(!$_POST) {
?>
<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
<tr>
<td colspan="2" align="center"><h3>LOGIN</h3></td>
</tr>
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" size="15" maxlength="15"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" size="15" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
</tr>
</form>
</table>
<?
} else {
$usuario = $_POST['usuario'];
$password = $_POST['password'];
if(!$usuario || !$password) {
echo "Debe ingresar los datos en todos los campos.";
exit;
}
$consultar = "select * from datos where Usuario = '$usuario'";
$resultado = mysql_query($consultar);
$reg = mysql_fetch_array($resultado);
if($reg['Usuario'] != $usuario){
echo "Nombre de usuario incorrecto <br>";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
exit;
}
if($password == $reg['Password']) {
?>
<script language="javascript">
location.href = "formulario.php";
</script>
<?
} else {
echo "Password Incorrecto";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
}
}
?>
Iniciamos PHP y evaluamos que el formulario no contenga datos, se deja abierto el if para mostrar el formulario que esta escrito en HTML.
<?
if(!$_POST) {
?>
Escribimos el código HTML para el formulario que tendrá dos campos de texto una para Usuario y otro para Password.
En mi estructura de tabla he hecho una modificación, agregue un campo usuario para este programa, les dejo la imagen para que puedan hacer este cambio tambien.
<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
<tr>
<td colspan="2" align="center"><h3>LOGIN</h3></td>
</tr>
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" size="15" maxlength="15"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" size="15" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
</tr>
</form>
</table>
La siguiente porción de código es de PHP y corresponde al cierre de if y al inicio de else.
<?
} else {
Estas dos líneas de código asignan los valores de los datos capturados en el formulario a dos variables que usaremos para consultar en la tabla.
$usuario = $_POST['usuario'];
$password = $_POST['password'];
Validamos el formulario.
if(!$usuario || !$password) {
echo "Debe ingresar los datos en todos los campos.";
exit;
}
Conectamos con el servidor.
$db = mysql_connect("localhost", "root", "123456")
or die ("No se puede conectar con LOCALHOST");
Seleccionamos la base de datos.
mysql_select_db("colegioprueba")
or die ("No se puede abrir la base de datos COLEGIOPRUEBA");
Realizamos la consulta. En este caso condicionamos usando WHERE que el campo Usuario sea igual a la variable $usuario.
$consultar = "select * from datos where Usuario = '$usuario'";
Ejecutamos la consulta.
$resultado = mysql_query($consultar);
Asignamos al array $reg el contenido de la tabla.
$reg = mysql_fetch_array($resultado);
Con este código evaluamos si la consulta falló, de ser así mostramos un mensaje y luego un link (este esta escrito en código javascript) para volver atrás.
if($reg['Usuario'] != $usuario){
echo "Nombre de usuario incorrecto <br>";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
exit;
}
En este código evaluamos que el password que ingreso el usuario sea igual al password registrado en la tabla, de ser así se le da acceso directo a la pagina llamada formulario.php (el redireccionamiento esta escrito en javascript) en caso contrario se da un mensaje y un link para regresar atrás (este link tambien esta escrito en javascript)
if($password == $reg['Password']) {
?>
<script language="javascript">
location.href = "formulario.php";
</script>
<?
} else {
echo "Password Incorrecto";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
}
}
Finalizamos PHP.
?>
Como siempre les dejo el código completo para que lo prueben y comenten sus resultados.
<?
if(!$_POST) {
?>
<table width="300" border="0">
<form action="<? $_POST ?>" method="post">
<tr>
<td colspan="2" align="center"><h3>LOGIN</h3></td>
</tr>
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" size="15" maxlength="15"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" size="15" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="" type="submit" value="Ingresar"></td>
</tr>
</form>
</table>
<?
} else {
$usuario = $_POST['usuario'];
$password = $_POST['password'];
if(!$usuario || !$password) {
echo "Debe ingresar los datos en todos los campos.";
exit;
}
$db = mysql_connect("localhost", "root", "123456")
or die ("No se puede conectar con LOCALHOST");
mysql_select_db("colegioprueba")
or die ("No se puede abrir la base de datos COLEGIOPRUEBA");
$consultar = "select * from datos where Usuario = '$usuario'";
$resultado = mysql_query($consultar);
$reg = mysql_fetch_array($resultado);
if($reg['Usuario'] != $usuario){
echo "Nombre de usuario incorrecto <br>";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
exit;
}
if($password == $reg['Password']) {
?>
<script language="javascript">
location.href = "formulario.php";
</script>
<?
} else {
echo "Password Incorrecto";
?>
<a href="javascript:history.back(1)">Volver Atrás</a>
<?
}
}
?>