Hola,
andaba algo aburrido y te he hecho un script...
login.php
Código:
<?php
define("login", true);
include("conectar.php");
if ($_GET[id]=="pagina") {
// esto sería la nueva página restringida
include("es_admin.php");
if ($es_admin==1) {
// comprobamos los permisos de el archivo
if(is_writable('conectar.php')) {
echo'<p>Cambie los permisos al archivo config.php a solo lectura. (CHMOD 444)</p>';
}
echo'Eres administrador';
}else{
Header("Location: index.php");
die();
}
}else{
if (isset($_POST[enviar])) {
$sql = mysql_query("SELECT usuario,pass FROM admin where usuario='".mysql_real_escape_string($_POST['usuario'])."'");
list($usuario,$pass)=mysql_fetch_row($sql);
mysql_free_result($sql);
if(mysql_real_escape_string($_POST['usuario'])==$usuario && md5($_POST['pass'])==$pass) {
setcookie("usuario",$usuario,$tiempo);
setcookie("pass",$pass,$tiempo);
header("Location: login.php?id=pagina");
}else{
$error.='Los datos no coinciden con nuestra base de datos.';
}
}
echo'
'.$error.'
<form action="login.php" method="post">
Usuario: <br /> <input type="text" name="usuario" />
<br /> Pass:<br /> <input type="password" name="pass" />
<br />
<input type="submit" name="enviar" value="Conectar" />
</form>
';
}
?>
conectar.php
Código:
<?php
if(!defined('login')) {
Header("Location: index.php");
die();
}
$conectar = mysql_connect("localhost","usuario","pass");
mysql_select_db("db");
?>
es_admin.php
Código:
<?php
if(!defined('login')) {
Header("Location: ../../index.php");
die();
}
function es_admin () {
global $es_admin;
$es_admin=0;
if(!empty($_COOKIE['usuario']) and !empty($_COOKIE['pass'])) {
$admin = "SELECT usuario,pass FROM admin WHERE pass='".mysql_real_escape_string($_COOKIE['pass'])."' AND usuario='".mysql_real_escape_string($_COOKIE['usuario'])."'";
$result = mysql_query($admin);
$num = mysql_num_rows($result);
if($num==1){
$es_admin=1;
}
}
}
es_admin();
?>
tabla de la db:
Código:
CREATE TABLE `admin` (
`id` int(11) NOT NULL auto_increment,
`usuario` varchar(25) character set utf8 default NULL,
`pass` varchar(40) character set utf8 default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla `admin`
--
INSERT INTO `admin` VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e');
y ya esta... métete en el login.php y eso sería el inicio, puede que tenga errores ya que lo hice deprisa y no lo probé, el usuario es admin y la contraseña 123456 o 1234, no me acuerdo cual puse.
saludos.
edito:
por si no lo sabes para crear una nueva página por separado con restricciones sería algo asi:
Código:
<?php
define("login", true);
include("conectar.php");
include("es_admin.php");
if ($es_admin==1) {
echo'Eres administrador'; // si eres admin te saldrá este mensaje
}else{
Header("Location: index.php"); // si no lo eres te redireccionará al index.php
die();
}
?>