Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2009, 08:25
codig0
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 8 meses
Puntos: 41
Respuesta: logueo/comprobacion de datos en plan chapucilla

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();
}

?>

Última edición por codig0; 10/05/2009 a las 08:45