Hola criollonalubre,
Muy bien, mira te creo este login como lo haria yo, ya tu lo acomodas a tu necesidad. Empecemos, primero que todo vamos a hacer de cuenta de que para que mi usuario se identifique, debo exigirle 2 datos, el cual el usuario debera digitar el email y el password, asi mismo tengo una base de datos llamada login y una tabla llamada usuarios, suponiendo que es esta la tabla:
Como ves tengo mis datos ecriptados ( sha1 y md5 )... ahora si que ya sabemos que datos vamos a exigir que digite el usuario para su login, aqui viene el codigo php
<?php
session_start();//primero inicio la funcion session start para comenzar las variables de sesion globales, esto siempre debe ir en la cabecera del archivo.
//logicamente nuestra conexion a la BD
$MySQL[0] = "localhost";//servidor
$MySQL[1] = "root";//usuario del mysql
$MySQL[2] = "root";//password del mysql
$MySQL[3] = "login";//nombre de tu BD
mysql_connection($MySQL[0], $MySQL[1], $MySQL[2]) or die("Error -> La conexion en el servidor MySQL no se ha podido efectuar. = ".mysql_error());
mysql_select_db($MySQL[3]) or die("Error -> La conexion a la base de datos no pudo ser realizada. ".mysql_error());
?>
//segundo creo el formulario del login
<form action="" method="POST">
<b>Em@ail</b><br>
<input type="text" name="txtEmail" size="20"><br>
<b>Password</b><br>
<input type="password" name="txtPass" size="20"><br>
<input type="submit" value="Identificarse" name="btnLogin"><br>
</form>
// despues sigo con el codigo PHP
<?php
if(isset($_POST['btnLogin']))//primero identifico que el usuario halla
{
if(!empty($_POST['txtEmail']) && !empty($_POST['txtPass']))//Luego verifico que los campos que estoy exigiendo no sean de valor NULL es decir que no esten vacios
{
$pass1 = sha1($_POST['txtPass']);
$pass = md5($pass1);
$sql = mysql_query("SELECT * FROM usuarios WHERE email='".$_POST['txtEmail']."' AND password='".$pass."'");// verificamos que existan estos datos en la base de datos
if(mysql_num_rows($sql) > 0)//verificamos si existe una fila con lo dicho en la variable $sql
{
$_SESSION['login_user'] = "1";
$_SESSION['email_user'] = $_POST['txtEmail'];
//aqui haces un redireccionamiento ya sea en php o javascript ( recomiendo javascript )
} else {
echo "Error -> Tu email o contraseña estan erroneas";//muestras el mensaje en caso de que no haya filas con nuestra condicional en el lenguaje sql
}
} else {
echo "Error -> Debes llenar el campo Em@il y el campo Password";
}
}
?>
Bueno esto es todo, cualquier cosa me avisas si te funciona o no... no lo probe pero estoy seguro de que te va a funcionar.
Edit: Puedes colocar este codigo en la pagina que no desees que entren visitantes, sino que solo entren usuarios:
<?php
session_start();
if(empty($_SESSION['login_user']))//verificamos si la persona esta identificada
{
header("Location: index.php");//redirecciona a la persona sino esta identificada
exit;
}
?>
Edit 2: Lo que esta encriptado es la contraseña unicamente, esos numeros que coloque como valor no son exactamente un encriptamiento, son numeros y letras que digite al azar.
Edit 3: Si quieres un logout te puede servir este codigo:
<?php
session_start();
if(!empty($_SESSION['login_user']))//verificamos si la persona esta identificada
{
$_SESSION = array();//vaciamos la variable global de session
session_destroy();//destruimos la session del usuario
header("Location: index.php");//redireccionamos al usuario
exit;
} else {
header("Location: index.php");//redireccionamos al intruso!!!
exit;
}
?>
Edit 4: Espero te haya servido... Saludos JuLiAnChz!