Hacer Administracion con PHP

Iniciado por dominioswww, 15 Noviembre 2006, 07:40 AM

0 Miembros y 2 Visitantes están viendo este tema.

dominioswww

#10
Hice una class esta bien? necesito q alguien me la cheque porfa

<?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_EXPIRECOOKIE_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->Admintime()+COOKIE_EXPIRECOOKIE_PATH);

      }
      return 
$error;
   }


   function 
logout(){

      
setcookie("cookadmin"""time()-COOKIE_EXPIRECOOKIE_PATH);
      unset(
$_SESSION['manager']);

     
$this->Logeado false;
      
     }





};


?>



Despues pues hago auth.php
<?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


$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

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
           $dadmin = "admin";
           $dpass = md5(pass);


Por esto

           $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

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
if(!es_admin()){
exit();
}


para que alguien q intente ver el archivo directamente no le muewstre algo


un saludo




Dominios al mejor precio desde 2.00 USD solo en
http://dpanel.dominioswww.net
http://www.dominioswww.net

Morris

No uses cookies. Las cookies se roban muy fácil con un XSS.
Usa mejor variables de sesión.
Carta Poder
Ejemplos
Memorandum
Carta Recomendacion
www.ejemplode.com/12-clases_de_espanol/

dominioswww

Pero no esta seguro es Session y Cookie? o como entonces le hago si no quiero estar entrando y poniendo los datoscada vez q entro?
Dominios al mejor precio desde 2.00 USD solo en
http://dpanel.dominioswww.net
http://www.dominioswww.net

alone-in-the-chat

Como Morris ya te dijo usa sesiones es mas
seguro , puesto que las cookies se quedan en el cliente en este caso tu explorador almacena las cookies :P y weno de alli como ya te dijo morris es facil robartelas
En cambio las variables session se guardan en forma fisica en el servidor .


Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

Morris

XD si no quieres poner los datos pues no le pongas password XD
Carta Poder
Ejemplos
Memorandum
Carta Recomendacion
www.ejemplode.com/12-clases_de_espanol/