Aqui esta la vercion 3.0 de Easy Login (BETA). Esta vercion, podes elejir entre Mysql, SQL Server, PostgreSQL o Oracle
El modo de uso de esta vercion es igual a la anterior vercion. Lo unico que cambia es el modo de que se inicia la class. Yo solo probe el mysql y anda bien, los otros no los probe porque no los tengo .. el que lo pruebe.. me avisa
Código php:
Ver original
<?php /********************************************************\ * EasyLogin * ********************************************************** * Autor: Pato12 de forosdelweb.com * * Version: 3.0 (BETA) * * Web del autor: halfmusic.com * * Descripcion: * * Sirve para registrar, logiar, revisar si un * * usuario existe, etc... * ********************************************************** ********************************************************** * Este scriopt PHP es libre de usar siempre * * cuando no borren estas lineas y respeten la * * Licencia: GNU General Public License * * http://creativecommons.org/licenses/GPL/2.0/deed.es_AR * *********************************************************/ class EasyLogin{ 'conexion'=>false, 'tabla'=>false, 'campos'=>false, 'modo'=>'mysql' ); public function __construct($conexion=false,$tabla=false,$campos=false,$modo=false){ $error=false; if($modo !== false) $this->data['modo']=($modo=='postgres'?'postgres':($modo=='mssql'?'mssql':($modo=='oracle'?'oracle':'mysql'))); if($this->conpatible() === false) return $this->setError('Tu configuracion PHP, no es compatible con el modo elejido ('.$this->data['modo'].').'); $conexion=$this->conectarBD($conexion); if($conexion === false){ $this->setError("Conexion no valida."); $error=true; } if($tabla === false){ $this->setError("Tabla no valida."); $error=true; } $this->setError("Campos no validos."); $error=true; } $this->data['tabla']=$this->filtro($tabla); $this->data['campos']=$campos; $this->data['conexion']=$conexion; return !$error; } public function loginUser($user,$clave){ if($this->data['conexion'] === false) return $this->data['conexion']; $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)); $consultar = $this->query_sql($consulta); if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle') return oci_num_rows($consultar)==1; } public function dataUser($dato,$select=false){ if($this->data['conexion'] === false) return $this->data['conexion']; $consulta = sprintf("SELECT %s FROM %s WHERE %s='%s'","*",$this->data['tabla'],!$select?$this->data['campos'][0]:$this->filtro($select),$this->filtro($dato)); $consultar = $this->query_sql($consulta); if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle') return oci_num_rows($consultar)>0?oci_fetch_array($consultar):false; } public function existeUser($user){ if($this->data['conexion'] === false) return $this->data['conexion']; $consulta=sprintf("SELECT * FROM %s WHERE %s='%s'",$this->data['tabla'],$this->data['campos'][0],$this->filtro($user)); $consultar = $this->query_sql($consulta); if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle') return oci_num_rows($consultar)>0; } public function registrar($datos,$campos){ if($this->data['conexion'] === false) return $this->data['conexion']; $this->setError("Los campos o datos, no son array."); return $this->query_sql($consulta); } public function getError(){ return $this->data['errores']; } public function filtro($value){ } public function closedBD(){ if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle') return oci_close($this->data['conexion']); } private function conectarBD($datos){ if($this->data['modo']=='mysql'){ $conexion = mysql_connect(!$datos[0]?'localhost':$datos[0],$datos[1],$datos[2]) or $this->setError("Datos de conexion al servidor mal (".mysql_error().")."); $conexion_bd = mysql_select_db($datos[3],$conexion) or $this->setError("BD o conexion con el servidor, erronea (".mysql_error().")"); return $conexion&&$conexion_bd?$conexion:false; }elseif($this->data['modo']=='postgres'){ $conexion = pg_connect("host=".(!$datos[0]?'localhost':$datos[0])." port=".$datos[1]." dbname=".$datos[4]." user=".$datos[2]." password=".$datos[3]."") or $this->setError("Datos de conexion al servidor mal."); return $conexion; }elseif($this->data['modo']=='mssql'){ $conexion = mssql_connect(!$datos[0]?'localhost':$datos[0],$datos[1],$datos[2]) or $this->setError("Datos de conexion al servidor mal."); $conexion_bd = mssql_select_db($datos[3],$conexion) or $this->setError("BD o conexion con el servidor errada."); return $conexion&&$conexion_bd?$conexion:false; }elseif($this->data['modo']=='oracle'){ $conexion = oci_connect($datos[0],$datos[1],$datos[2]); return $conexion; } } private function setError($err){ $this->data['errores'][]=$err; } private function query_sql($sql){ if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle'){ $consulta = oci_parse($this->data['conexion'],$sql); oci_execute($consulta); return $consulta; } } private function conpatible(){ if($this->data['modo']=='mysql') elseif($this->data['modo']=='postgres') elseif($this->data['modo']=='mssql') elseif($this->data['modo']=='oracle') } } ?>
Modo de iniciar la class:
Mysql
Código php:
Ver original
SQL Server
Código php:
Ver original
PostgreSQL
Código php:
Ver original
Oracle
Código php:
Ver original
Modo de uso
Código php:
Ver original
<?php include('EasyLogin 3-0.php'); $usuario = 'demo_user'; // Usuario a registrar $clave = 'demo'; // Clave del usuario if($sis->existeUser($usuario)){ // Si el usuario existe echo "No se pudo registrar, el usuario ya existe."; // Imprimimos }else{ // Si no $datos=array($sis->filtro($usuario),$sis->filtro($clave),'[email protected]'); // Definimos los datos del campo $reg=$sis->registrar($datos,$campos); // Registramos if($reg){ // Si salio bien echo "Registrado correctamente.<br />"; // Lo decimos if($sis->loginUser($usuario,$clave)){ // Lo logeamos echo "Logeadio!"; // Si se logeo bien lo decimos // aqui la session o cookies que identifique al usuario }else // Si no se logeio echo "No se pudo logear"; // Lo decimos }else // Si no se registro echo "No se pudo registrar."; // Lo decimos } $sis->closedBD(); // Cerramos la conexion a la bd ?>
Repito, solo lo probe en mysql.. yo nunca use otro que no sea mysql, por eso puede tener bug..
Gracias
Salu2