index.php
Código:
control.php<html>
<head>
<title>Autentificación PHP</title>
</head>
<body>
<h1>Autentificación PHP</h1>
<form action="control.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=#cccccc>Introduce tu clave de acceso
<?}?></td>
</tr>
<tr>
<td align="right">USER:</td>
<td><input type="Text" name="usuario" size="8" maxlength="50"></td>
</tr>
<tr>
<td align="right">PASSWD:</td>
<td><input type="password" name="contraseña" size="8" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>
</body>
</html>
Código:
seguridad.php<?
//vemos si el usuario y contraseña es váildo
if ($_POST["usuario"]=="miguel" && $_POST["contraseña"]=="qwerty"){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_start();
$_SESSION["autentificado"]= "SI";
header ("Location: aplicacion.php");
}else {
//si no existe le mando otra vez a la portada
header("Location: index.php?errorusuario=si");
}
?>
Código:
aplicacion.php<?
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>
Código:
Todo el codigo anterior funciona a la perfección el unico detalle es que yo tengo un registro de usuarios, y para ello tube que modificar el archivo control.php y quedo asi:<?include ("seguridad.php");?>
<html>
<head>
<title>Aplicación segura</title>
</head>
<body>
<h1>Si estás aquí es que te has autentificado</h1>
<br>
----
<br>
Aplicación segura
<br>
----
<br>
<br>
<a href="salir.php">Salir</a>
</body>
</html>
control.php
Código:
Este codigo hace la comprobación, si los datos no son correctos lo manda al index.php para iniciar sesion, si los datos son correctos lo manda a aplicacion.php, el unico problema es que los usuarios pueden entrar desde el navegador a aplicacion.php, y es ese el error que aun no logro solucionar no se que estoy haciendo espero puedan ayudarme. De antemano gracias <?php
session_start();
mysql_connect("localhost","miusuario","micontraseña");
mysql_select_db("mibase") or die('No se puede seleccionar la base de datos');
if ($_POST['usuario']) {
$contraseña=$_POST['contraseña'];
if ($contraseña==NULL) {
echo "La contraseña no fue enviada";
}else{
$query = mysql_query("SELECT usuario,contraseña FROM usuarios WHERE usuario = '$usuario'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contraseña'] != $contraseña) {
header("Location: index.php?errorusuario=si");
}else{
$_SESSION["autentificado"]= "SI";
header ("Location: aplicacion.php");
}
}
}
?>


