Navegando por la red, recolectando codigos fuentes hice mi propia version, con conexion a mysql y con cookies para recordar.
Solo tengo algunas dudas
Código PHP:
<?php
include("includes/conexion.php"); // Se incluye conexion a la base de datos
include("includes/Evitar-inyeccion.php"); // Se incluye funcion para evitar inyecciones
include("includes/fechas.php");// Funcion Fecha
session_start();// Se inicia el session_star para crear las sesiones
//Array con los posibles mensajes que se presentaran.
$mensajes = array(
0=>"Ingresa tus datos",
1=>"Falto ingresar nombre",
2=>"Falto ingresar contraseña",
3=>"Nombre de usuario no valido",
4=>"Contraseña no valida",
5=>"Bienvenido",);
//Declaracion de variables
$msg="";
$tiempo= date("Y-m-d H:i:s");
// Se comprueba si ya se establecio la variable "MM_insert"
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "Envio"))
{
//Si faltan ingresar los dos campos.
if (($_POST["user"]=="") AND ($_POST["pass"]==""))
{
$msg=$mensajes['0'];
}
//Si falto ingresar el nombre.
if (($_POST["user"]=="") AND ($_POST["pass"]!=""))
{
$msg=$mensajes['1'];
}
//Si falto ingresar la contraseña.
if (($_POST["user"]!="") AND ($_POST["pass"]==""))
{
$msg=$mensajes['2'];
}
//Si se ingresaron los dos .
if (($_POST["user"]!="") AND ($_POST["pass"]!=""))
{
$user = $_POST['user'];
$user_clear = strtolower(GetSQLValueString($_POST['user'], "text"));
$pass_clear = GetSQLValueString(md5($_POST['pass']), "text");
$user_end = trim(str_replace("'", "", $user_clear));
$pass_end = trim(str_replace("'", "", $pass_clear));
$consulta= sprintf("SELECT * FROM usuarios WHERE usuario = %s",$user_clear);
$resultado= mysql_query($consulta,$conexion) or die (mysql_error());
$fila=mysql_fetch_array($resultado);
if (!$fila[0]) //Si el usuario NO existe.
{
$msg=$mensajes['3'];
}
else //Usuario logueado correctamente (Falta verificar contraseña)
{
if($fila['5']!=$pass_end && $fila['3']==$user_end)//SI la contraseña no es valide
{
$msg=$mensajes['4'];
}
if($fila['5']==$pass_end && $fila['3']==$user_end)//Si la contraseña y usuarios son validos
{
$msg=$mensajes['5'];
if(isset($_POST['checkbox'])==1)
{
echo "Recuerdame"."</br>";
} else {
echo "Olvidame"."</br>";
}
//Insertamos la hora de registro para informacion
$last = sprintf("UPDATE usuarios SET last_date = '$tiempo' WHERE usuario =%s",$user_clear);
$inserta = mysql_query($last,$conexion) or die (mysql_error());
//Definimos las variables de sesión
// Se comienzan a asignar los valores para el array
$ID=$fila['ID'];
$nombre=$fila['nombre'];
$apellidos=$fila['apellidos'];
$usuario=$fila['usuario'];
$email=$fila['email'];
$pass=$fila['pass'];
$permisos=$fila['permisos'];
$imagen=$fila['imagen'];
$fecha_ingreso=$fila['fecha_ingreso'];
$last_date=$fila['last_date'];
//Se crea un array con el valor de la tabla
$mi_sesion=array(
'ID' =>$ID,
'nombre'=> $nombre,
'apellidos' => $apellidos,
'usuario' => $usuario,
'email' => $email,
'pass' => $pass,
'permisos'=> $permisos,
'imagen' => $imagen,
'fecha_ingreso'=> $fecha_ingreso,
'last_date'=> $last_date,);
//Se creara variables de sesion de acuerdo a su nivel de usuario
switch ($mi_sesion['permisos']) {
case 'baneado':
$_SESSION['General'] = 1;
$_SESSION['mi_sesion']=$mi_sesion;
//header("Location: panel_general.php");
break;
case 'proceso':
$_SESSION['General'] = 2;
$_SESSION['mi_sesion']=$mi_sesion;
//header("Location: panel_general.php");
break;
case 'usuario':
$_SESSION['General'] = 3;
$_SESSION['mi_sesion']=$mi_sesion;
//header("Location: panel_general.php");
break;
case 'escritor':
$_SESSION['General'] = 4;
$_SESSION['mi_sesion']=$mi_sesion;
//header("Location: panel_general.php");
break;
case 'master':
$_SESSION['General'] = 5;
$_SESSION['mi_sesion']=$mi_sesion;
//header("Location: panel_general.php");
break;
}
}//Fin de proceso
}
}
}
?>