Código:
<?php
define("COOKIE_EXPIRE", 60*60*24*100);
define("COOKIE_PATH", "/");
class AdminLogin
{
var $Admin;
var $Password;
var $Logeado;
var $Tiempo;
var $error;
var $url;
var $referrer;
function AdminLogin(){
$this->Tiempo = time();
$this->iniciarSession();
}
function iniciarSession(){
session_start(); //Iniciamos Sesiones
$this->Logeado = $this->checkLogin(); //
if(isset($_SESSION['url'])){
$this->referrer = $_SESSION['url'];
}else{
$this->referrer = "/";
}
$this->url = $_SESSION['url'] = $_SERVER['PHP_SELF'];
}
function checkLogin(){
if(isset($_COOKIE['cookadmin'])){
$this->Admin = $_SESSION['manager'] = $_COOKIE['cookadmin'];
}
if(isset($_SESSION['manager'])){
$cookie = explode(":", $_SESSION['manager']);
$cookiea = $cookie[0];
$cookiep = $cookie[1];
$dadmin = "admin";
$dpass = md5(pass);
if($cookiea == $dadmin && $cookiep == $dpass){
return true;
}else{
unset($_SESSION['manager']);
setcookie("cookadmin", "", time()-COOKIE_EXPIRE, COOKIE_PATH);
header("location: manager.php");
return false;
}
}
return false;
}
function login($admin, $pass, $cadmin, $cpass, $recordar){
if($admin!==$cadmin){
$error = "No puedes entrar a la Administración";
return $error;
}elseif($pass!==$cpass){
$error = "No puedes entrar a la Administración";
return $error;
}
// $error = "accesopervitido";
$pass = md5($pass);
$this->Admin = $_SESSION['manager'] = "$admin:$pass";
header("location: manager.php");
if($recordar){
setcookie("cookadmin", $this->Admin, time()+COOKIE_EXPIRE, COOKIE_PATH);
}
return $error;
}
function logout(){
setcookie("cookadmin", "", time()-COOKIE_EXPIRE, COOKIE_PATH);
unset($_SESSION['manager']);
$this->Logeado = false;
}
};
?>
Despues pues hago auth.php
Código:
<?php
include("admin.class.php");
$alogin = new AdminLogin;
?>
y este lo incluyo en mi archivo principal de includes donde he creado mis funciones y el include de la class de base de datos y otros archivos pues el mainfile.php
despues en mi admin.php pongo el form y pongo
Código:
$admin = $_POST['user'];
$pass = $_POST['pass'];
$pass = md5($pass);
$cadmin = useradmin();
$cpass = md5(passadmin());
if(isset($_POST['sublogin'])){
$yo3 = $alogin->login($admin,$pass,$cadmin,$cpass,isset($_POST['remember']));
}
t en mi mainfile agrego estas funciones
Código:
function es_admin()
{
global $db, $alogin;
$esadmin = $alogin->Logeado;
return $esadmin;
}
function useradmin()
{
global $db, $alogin;
/Esto como ejemplo para poder llamar el nombre del admin desde una base de datos
$uadmin = "admin";
return $uadmin;
}
function passadmin()
{
global $db, $alogin;
/Esto como ejemplo para poder llamar el pass desde una base de datos
$upass = "pass";
return $upass;
}
ahora modifique mi admin.class.php
Esto
Código:
$dadmin = "admin";
$dpass = md5(pass);
Por esto
Código:
$dadmin = useradmin();
$dpass = passadmin();
Para que en el checklogin pues tenga esos datos de la base de datos
luego en el admin.php tengo esto
Código:
if(es_admin()){
//PARTE DE ADMINISTRACION
}else{
//necesitas logearte
}
Y pues no se que tan seguro este mi script para el admin y para hacer admin.php?op=sección
y hacer que el switch llame a un include bastaria con poner
Código:
if(!es_admin()){
exit();
}
para que alguien q intente ver el archivo directamente no le muewstre algo
un saludo