en este caso si quedaria bien usar sessiones.
yo te recomendaria que uses sessiones para alojar la id del administrador y el password del adminsitrador (encriptado)
y tener unas cookies con esos mismos valores.
hacer una funcion que cheque por la id, dle usuario, haga un query a la base de datos y compare el password alojado en la session cone l password alopjado en la base de datos., si la informacion coincide, checar si ese usuario es adminsitrador, ejemplo tener un campo en la tabla usuarios llamado "nivel" donde 1 sea admistrador y 0 sea usaurio nromal. si resulta ser admisnitrador que el script continue, si no es admistrador, avisar que es area restringida y dar un exit; (para que se detenga el parseo del script)
el password en si, te recomiendo que este encriptado en MD5, junto con una salt
con salt me refieor a uan string calculada aleatoriamente.
obiamente tuvieras que alokar en la abla de usarios un campo llamado password (con el password y la salt encriptada en md5) y otro campo con la salt para poder comparar los password cuando ingresen al panel
o si quoeires ahorrarte la parte de la salt, simplemente encrupta dos veces en md5 el password
tu codigo deve verse mas o menos asi:
Código PHP:
function admins()
{
$quien=$_SESSION['id_usuario'];
$password=$_SESSION['passusuario'];
conectar_base_de_datos();
$usuario = mysql_fetch_array(mysql_query("SELECT `id`, `password`, `nivel` FROM `usuarios` WHERE `id` = '".$quien."' LIMIT 0, 30"));
Mysql_close();
$password_real=$usuario['password'];
if($password_real== $password AND $nivel == "1") //tomando que nivel 1 es admin
{
$autentico="1";
}else{
Echo "acceso restringido a adminsitradores"; //advierte que el area es solo para admins
Exit;
}
}
function login($usuario, $password)
{
Global $error_login1, $error_login2;
conectar_base_de_datos();
$usuario = mysql_fetch_array(mysql_query("SELECT `id`, `password` FROM `usuario` WHERE `usuario` = '".$usuario."' LIMIT 0, 30"));
Mysql_close();
$id =$usuario['id'];
if (empty($id)){
$error_login1="1";//el usuario no existe
}
$password=md5(md5($password));
if ($password== $usuario['password']) {
$_SESSION['id_usuario'] = $usuario['id'];
$_SESSION['passusuario'] = $usuario['password'];
header("Location: admin.php");
}else{
$error_login2="2";//el password no es correcto.
}
/* $error_login1, $error_login2 son globals, para que puedan se rusadas fuera de la funcion, por si se desea avisar al usario el error exacto*/
}
function logout()
{
unset($_SESSION['id_usuario']);
unset($_SESSION['passusuario']);
setcookie("id_usuario", $_SESSION['id_usuario'], time() - 1);
setcookie("passusuario", $_SESSION['passusuario'], time() - 1);
session_destroy();
header("Location: index.php");
}
function set_cookie()
{
if (isset($_SESSION['id_usuario']) && isset($_SESSION['passusuario']))
{
@setcookie('id_usuario', $_SESSION['id_usuario'], time()+10800);
@setcookie('passusuario', $_SESSION['passusuario'], time()+10800);
}
}
function check_cookie()
{
if (isset($_COOKIE['id_usuario']) && isset($_COOKIE['passusuario']))
{
$_SESSION['id_usuario'] = $_COOKIE['id_usuario'];
$_SESSION['passusuario'] = $_COOKIE['passusuario'];
}
}
si tienes formularios, donde los usuarios puedan postear cosas en la web, te aocnsejo que sues esta funcion, para desabilitar cualquier codigo que quieran injectar
Código PHP:
function anti_lammers($variable)
{
$variable = addslashes($variable);
$variable = htmlspecialchars($variable, ENT_QUOTES);
return ($variable);
}
suponiendo que las funciones las guardas en un archivo llamdo funciones, tu admin.php deve verse asi:
Código PHP:
<?include("includes/funciones.php");
session_start();
set_cookie();
check_cookie();
admins();
echo"panel de adminstracion...";
?>
-Kerberos^^