Login.php
Código
La idea es que si ya tienes un login realizado no te deje acceder a esa página, sino que te redireccione al index.php.
<?php { } else { ?> <html> <head> <title>Login de Usuario</title> </head> <link rel="stylesheet" href="css/login.css" type="text/css" /> <body> <br /><br /><br /> <center> <h2>Ingrese sus datos para acceder al sistema</h2> <form action="logon.php" method="post" name="form"> <table border='0' bgcolor=""> <tr> <td><b> <p align="right">Usuario</p></b></td> <td align="center"><input type="text" name="user"></td> </tr> <tr> <td><b> <p align="right">Contraseña</p> </b></td> <td align="center"><input type="password" name="pass"></td> </tr> <tr align="center"> <td> </td> <td> <input type="submit" value="enviar"><input type="reset" value="limpiar" name="limpiar"> </td> </tr> <?php { $mensaje=$_SESSION['error']; echo("<tr align='right'><td colspan='2'>$mensaje</td></tr>"); } ?> </table> </form> </center> <center><b><a href='guest.php'>Entrar como invitado</a></b></center> <?php } ?> </body> </html>
Ahora el logon.php que es quien gestiona los usuarios con la BD
Código
<?php //recuperacion de variables session_start(); $usuario=$_REQUEST['user']; $password=$_REQUEST['pass']; $mensaje="Usuario o Contraseña incorrectos"; //base de datos $bd="trabajo"; $tabla="usuarios"; //$cifrar=base64_encode($password); //seleccion del usuario $registro=mysqli_query($conexion, "select * from $tabla where (usuario='$usuario')") or die ("Usuario desconocido"); { if ($reg=mysqli_fetch_array($registro)) { if ($password==$reg['password']) { $_SESSION['userid']=$_REQUEST['user']; $_SESSION[nivel]= $reg[nivel]; mysqli_close($conexion); header("location:index.php"); } else { $_SESSION['error']=$mensaje; echo ("error"); mysqli_close($conexion); header("location:login.php"); } } else { $_SESSION['error']=$mensaje; echo ("error"); mysqli_close($conexion); header("location:login.php"); } } ?>
Y así estamos listos. Yo recupero el nivel porque así puedo establecer permisos a los usuarios dependiendo de su nivel. Y en el login solo necesitamos recuperar las variables de sesion así
Código
session_start(); if (isset($_SESSION['userid'])) { ?> Aqui ponemos todo el index.php si el usuario se logueó bien. Si no abrimos php de nuevo escribimos <?php } else { } ?> </body> </html>