Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2009, 14:59
Avatar de pato12
pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 1 mes
Puntos: 101
[APORTE] EasyLogin 2.5

Hola,
Les traigo la vercion actualizada del EasyLogin ( siempre me olvido de postearla xD ):

**************
NUEVA VERCION: http://www.forosdelweb.com/f18/aport...-3-0-a-736848/
**************


Código php:
Ver original
  1. <?php
  2. /********************************************************\
  3. *                     EasyLogin                          *
  4. **********************************************************
  5. * Autor: Pato12 de forosdelweb.com                       *
  6. * Version: 2.5                                           *
  7. * Web del autor: halfmusic.com                           *
  8. * Descripcion:                                           *
  9. * Sirve para registrar, logiar, revisar si un            *
  10. * usuario existe, etc...                                 *
  11. **********************************************************
  12. **********************************************************
  13. * Este scriopt PHP es libre de usar siempre              *
  14. * cuando no borren estas lineas y respeten la            *
  15. * Licencia: GNU General Public License                   *
  16. * http://creativecommons.org/licenses/GPL/2.0/deed.es_AR *
  17. *********************************************************/
  18. class EasyLogin{
  19.     protected $data=array(
  20.                     'conexion'=>false,
  21.                     'tabla'=>false,
  22.                     'campos'=>false,
  23.                     'errores'=>array()
  24.                     );
  25.     public function __construct($conexion=false,$tabla=false,$campos=false){
  26.         $error=false;
  27.         if(is_array($conexion))
  28.             $conexion=$this->conectarBD($conexion);
  29.         if($conexion === false){
  30.             $this->setError("Conexion no valida.");
  31.             $error=true;
  32.         }
  33.         if($tabla === false){
  34.             $this->setError("Tabla no valida.");
  35.             $error=true;
  36.         }
  37.         if($campos === false || !is_array($campos)){
  38.             $this->setError("Campos no validos.");
  39.             $error=true;
  40.         }
  41.         $this->data['tabla']=$this->filtro($tabla);
  42.         $this->data['campos']=$campos;
  43.         $this->data['conexion']=$conexion;
  44.         return !$error;
  45.     }
  46.     public function loginUser($user,$clave){
  47.         if($this->data['conexion'] === false)
  48.             return $this->data['conexion'];
  49.         $consulta = sprintf("SELECT * FROM %s WHERE %s='%s' AND %s='%s'",$this->data['tabla'],$this->data['campos'][0],$this->filtro($user),$this->data['campos'][1],$this->filtro($clave));
  50.         $consultar = $this->query_sql($consulta);
  51.         return mysql_num_rows($consultar)==1;
  52.     }
  53.     public function dataUser($dato,$select=false){
  54.         if($this->data['conexion'] === false)
  55.             return $this->data['conexion'];
  56.         $consulta = sprintf("SELECT %s FROM %s WHERE %s='%s'","*",$this->data['tabla'],!$select?$this->data['campos'][0]:$this->filtro($select),$this->filtro($dato));
  57.         $consultar = $this->query_sql($consulta);
  58.         return mysql_num_rows($consultar)>0?mysql_fetch_array($consultar):false;
  59.     }
  60.     public function existeUser($user){
  61.         if($this->data['conexion'] === false)
  62.             return $this->data['conexion'];
  63.         $user=stripslashes($this->filtro($user));
  64.         $consulta=sprintf("SELECT * FROM %s WHERE %s='%s'",$this->data['tabla'],$this->data['campos'][0],$this->filtro($user));
  65.         $consultar = $this->query_sql($consulta);
  66.         return mysql_num_rows($consultar)>0;
  67.     }
  68.     public function registrar($datos,$campos){
  69.         if($this->data['conexion'] === false)
  70.             return $this->data['conexion'];
  71.         if(!is_array($campos)||!is_array($datos))
  72.             $this->setError("Los campos o datos, no son array.");
  73.         $consulta=sprintf("INSERT INTO %s (%s) VALUES (%s)",$this->data['tabla'],implode(',',$campos),'\''.implode("','",$datos).'\'');
  74.         return $this->query_sql($consulta);
  75.     }
  76.     public function getError(){
  77.         return $this->data['errores'];
  78.     }
  79.     public function filtro($value){
  80.         return addslashes(trim(htmlentities($value)));
  81.     }
  82.     public function closedBD(){
  83.         return mysql_close($this->data['conexion']);
  84.     }
  85.     private function conectarBD($datos){
  86.         $conexion = mysql_connect(!$datos[0]?'localhost':$datos[0],$datos[1],$datos[2]) or $this->setError("Datos de conexion al servidor mal (".mysql_error().").");
  87.         $conexion_bd = mysql_select_db($datos[3],$conexion) or $this->setError("BD o conexion con el servidor, erronea (".mysql_error().")");
  88.         return $conexion&&$conexion_bd?$conexion:false;
  89.     }
  90.     private function setError($err){
  91.         $this->data['errores'][]=$err;
  92.     }
  93.     private function query_sql($sql){
  94.         return mysql_query($sql,$this->data['conexion']);
  95.     }
  96. }
  97. ?>
Funciona casi igual al otro, las funciones se usan igual, lo que cambia el modo de ejcutacion.
Código php:
Ver original
  1. $EasyLogin = new EasyLogin(array("SERVIDOR","USUARIO","CLAVE","BD"),'TABLA DE USUARIO',array('FILA DE NICK','FILA DE CLAVE'));
o si ya tenemos la conexion a la bd echa:
Código php:
Ver original
  1. $EasyLogin = new EasyLogin($CONEXION BD,'TABLA DE USUARIO',array('FILA DE NICK','FILA DE CLAVE'));
Las funciones se cambiaron algunas de nombres.

Un ejemplo de uso:
Código php:
Ver original
  1. <?php
  2. include('EasyLogin 2-5.php');
  3. $sis = new EasyLogin(array("localhost","root","","base_de_datos"),'users',array('nick','clave'));
  4.  
  5. $usuario = 'demo_user'; // Usuario a registrar
  6. $clave = 'demo'; // Clave del usuario
  7.  
  8. if($sis->existeUser($usuario)){ // Si el usuario existe
  9.     echo "No se pudo registrar, el usuario ya existe."; // Imprimimos
  10. }else{ // Si no
  11.     $campos=array('nick','clave','email'); // Definimos campos
  12.     $datos=array($sis->filtro($usuario),$clave,'[email protected]'); // Definimos los datos del campo
  13.     $reg=$sis->registrar($datos,$campos); // Registramos
  14.     if($reg){ // Si salio bien
  15.         echo "Registrado correctamente.<br />"; // Lo decimos
  16.         if($sis->loginUser($usuario,$clave)){ // Lo logeamos
  17.             echo "Logeadio!"; // Si se logeo bien lo decimos
  18.             var_dump($sis->dataUser($usuario)); // Un dump de sus datos
  19.         }else // Si no se logeio
  20.             echo "No se pudo logear"; // Lo decimos
  21.     }else // Si no se registro
  22.         echo "No se pudo registrar."; // Lo decimos
  23. }
  24. var_dump($sis->getError()); // Hacemos un dump de los errores que se producieron
  25.  
  26. $sis->closedBD(); // Cerramos la conexion a la bd
  27. ?>
Bueno, espero que les sirva :P
Yo uso este codigo en muchas webs... y me anda bien.
Gracias
Salu2

PD: Ya voy a postiar muchas class mas que hice y no postie jajja, es muy larga la documentacion ( como una class para crear mapas de google maps ) :P
__________________
Half Music - www.halfmusic.com

Última edición por pato12; 18/09/2009 a las 17:54