Foros del Web » Programando para Internet » PHP »

[APORTE] EasyLogin 2.5

Estas en el tema de [APORTE] EasyLogin 2.5 en el foro de PHP en Foros del Web. 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/ ************** @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 26/08/2009, 14:59
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 2 meses
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
  #2 (permalink)  
Antiguo 26/08/2009, 15:39
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años, 7 meses
Puntos: 7
Respuesta: [APORTE] EasyLogin 2.5

gracias lo probaremos...
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 26/08/2009, 16:08
Avatar de Luis207  
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: [APORTE] EasyLogin 2.5

Gracias por el aporte. Es muy interesante
  #4 (permalink)  
Antiguo 26/08/2009, 18:28
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Respuesta: [APORTE] EasyLogin 2.5

buenas!!!

muchas gracias por el codigo
a probarlo


un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #5 (permalink)  
Antiguo 27/08/2009, 07:19
Avatar de zeus89  
Fecha de Ingreso: agosto-2009
Ubicación: Colombia
Mensajes: 16
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo Respuesta: [APORTE] EasyLogin 2.5

Gracias por el aporte men, es muy interesante y lo estaba necesitanto.


Colombia Libre!!!
  #6 (permalink)  
Antiguo 22/09/2009, 22:20
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 16 años
Puntos: 0
Sonrisa Respuesta: [APORTE] EasyLogin 2.5

amigo pato12 una consulta en la primera version del EasyLogin uno lo utiliza de la siguiente forma:

Código PHP:
En el archivo config.php (o en donde tengas la  *
las configuracionesescribe:
---------------------------------------------------
include(
'EasyLogin.php');
$us= new EasyLogin();
$us->config('MI SERVIDOR','MI USUARIO','MI CLAVE','MI BD');
$us->table('MI TABLA');
$us->campos('CAMPO DE USUARIOS','CAMPO DE CLAVE');
----------------------------------------------------
Cambia lo que esta en mayuscula por tus datos.
**************************
Despues para logear a un usuario:
---------------------------------------------------
include(
'config.php');
if(
$us->login('NICK DEL USUARIO','CLAVE DEL USUARIO'))
echo 
"Usuario logeado correctamente.";
else
echo 
"El nick o clave esta mal.";
--------------------------------------------------- 
como hago este proceso para esta version de antemano gracias por tu ayuda.
  #7 (permalink)  
Antiguo 23/09/2009, 11:38
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 2 meses
Puntos: 101
Respuesta: [APORTE] EasyLogin 2.5

Hola,
Te recomiendo usar la nueva vercion.
A esto:
Código php:
Ver original
  1. $us= new EasyLogin();
  2. $us->config('MI SERVIDOR','MI USUARIO','MI CLAVE','MI BD');
  3. $us->table('MI TABLA');
  4. $us->campos('CAMPO DE USUARIOS','CAMPO DE CLAVE');
  5. ----------------------------------------------------
Lo cambie por..
Código php:
Ver original
  1. $sis = new EasyLogin(array("MI SERVIDOR","MI USUARIO","MI CLAVE","MI BD"),'MI TABLA',array('CAMPO DE USUARIOS','CAMPO DE CLAVE'));
Si no te anda, usa la funcion getError y te devolvera un array con todos los errores que pasaron ;)
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #8 (permalink)  
Antiguo 23/09/2009, 20:30
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 16 años
Puntos: 0
Sonrisa Respuesta: [APORTE] EasyLogin 2.5

Perdon aqui no iba la pregunta.
  #9 (permalink)  
Antiguo 09/05/2011, 07:37
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: [APORTE] EasyLogin 2.5

Siento subir esto, para no abrir uno nuevo, así está todo recogido en el mismo.

Es sobre el ejemplo que dio en la anterior versión [URL="http://www.forosdelweb.com/f18/aporte-easylogin-624777/#post2707249"]#5[/URL] sobre el archivo privado.php
Código PHP:
<?php
session_start
();
include(
'EasyLogin.php');
if(!isset(
$_SESSION['user'],$_SESSION['login'])
exit(
"Pagina solo para usuarios registrados.");
// EL RESTO DE MI PAGINA PRIVADA
?>
Esto me genera un error de sintaxis en la línea 4.

Por si alguien puede aclararme un poco esto.

Gracias de antemano,

PD.: Llevo un par de días mirando y buscando para no preguntar, pero no he encontrado nada relacionado que me de la solución.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Última edición por Uncontroled_Duck; 09/05/2011 a las 11:22
  #10 (permalink)  
Antiguo 09/05/2011, 17:32
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: [APORTE] EasyLogin 2.5

Lee sobre comparadores logicos (and, or..)
Código PHP:
<?php
session_start
();
include(
'EasyLogin.php');
if(!isset(
$_SESSION['user']) || !isset($_SESSION['login']))
exit(
"Pagina solo para usuarios registrados.");
// EL RESTO DE MI PAGINA PRIVADA
?>
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #11 (permalink)  
Antiguo 09/05/2011, 17:53
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: [APORTE] EasyLogin 2.5

Cita:
Iniciado por Sourcegeek Ver Mensaje
Lee sobre comparadores logicos (and, or..)
...
Hey, gracias Sourcegeek, llevo dos días estudiando el tema, imaginaba que los tiros ivan por ahí, estaba probando con && pero sin el isset con el $_SESSION['login']. Como no terminaba de dar con la solución decidí preguntar.

Gracias de nuevo, me ha sido muy útil la ayuda.

Un saludo,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #12 (permalink)  
Antiguo 09/05/2011, 17:57
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: [APORTE] EasyLogin 2.5


&& o AND es cuando se requiere que las condiciones den true para proceder..
|| u OR es para una o las dos de true para proceder

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #13 (permalink)  
Antiguo 09/05/2011, 18:20
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: [APORTE] EasyLogin 2.5

Cita:
Iniciado por Sourcegeek Ver Mensaje
...
&& o AND es cuando se requiere que las condiciones den true para proceder..
|| u OR es para una o las dos de true para proceder
...
Tomo nota, gracias por tu tiempo Sourcegeek

Un saludo,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 02:49.