private function __construct() { $bases = Sfphp_Config::get('bases'); foreach ($bases as $nombre => $base) { try { if (!isset($base["charset"])) { $base["charset"] = "utf8"; } $parametros = array(); if ($base["type"] == "mysql") { $parametros = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $base["charset"]); } else { $parametros = array(); } switch ($base["type"]) { case 'sqlsrv': $this->{$nombre} = new PDO($base["type"] . ":Server=" . $base["host"] . ";", $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; case 'mysql': $this->{$nombre} = new PDO($base["type"] . ":host=" . $base["host"] . ";dbname=" . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; case 'firebird': $parametros = array(PDO::FB_ATTR_TIMESTAMP_FORMAT, "%d-%m-%Y", PDO::FB_ATTR_DATE_FORMAT, "%d-%m-%Y"); $this->{$nombre} = new PDO($base["type"] . ":dbname=" . $base["host"] . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; default: $this->{$nombre} = new PDO($base["type"] . ":host=" . $base["host"] . ";dbname=" . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"])); break; } } catch (PDOException $e) { Sfphp_Logs::procesa($e); } } }
private function __construct($configuracion = "default") { $base = Sfphp_Config::get('bases'); $base = $base[$configuracion]; self::$origen = $configuracion; try { if (!isset($base["charset"])) { $base["charset"] = "utf8"; } $parametros = array(); switch ($base["type"]) { case 'sqlsrv': self::$conexion = new PDO($base["type"] . ":Server=" . $base["host"] . ";", $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; case 'mysql': array_push($parametros, array(PDO::MYSQL_ATTR_COMPRESS => TRUE, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . $base["charset"])); self::$conexion = new PDO($base["type"] . ":host=" . $base["host"] . ";dbname=" . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; case 'firebird': array_push($parametros, array(PDO::FB_ATTR_TIMESTAMP_FORMAT => "%d-%m-%Y", PDO::FB_ATTR_DATE_FORMAT => "%d-%m-%Y")); self::$conexion = new PDO($base["type"] . ":dbname=" . $base["host"] . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"]), $parametros); break; default: self::$conexion = new PDO($base["type"] . ":host=" . $base["host"] . ";dbname=" . $base["dbname"], $base["user"], Sfphp::decrypt($base["password"])); break; } } catch (PDOException $e) { trigger_error($e->getMessage(), E_USER_ERROR); } }
protected function __construct() { $config = Sfphp_Config::get(); $config = $config['sesion']; #Que la cookie de sesión no pueda accederse por javascript. $httponly = true; #Configuracion para calcular el ID de la sesion $session_hash = 'sha512'; if (in_array($session_hash, hash_algos())) { ini_set('session.hash_function', $session_hash); } ini_set('session.hash_bits_per_character', 5); #Fuerza a la sesión para que sólo use cookies, no variables URL. ini_set('session.use_only_cookies', 1); #Define el tiempo en que una sesion puede seguir activa sin tener algún cambio ini_set('session.gc_maxlifetime', $config['inactivity']); #Configura los parametros de la sesion $cookieParams = session_get_cookie_params(); if ($cookieParams["lifetime"] == 0) { $cookieParams["lifetime"] = 28800; } #Se mantiene una sesion activa hasta por 8 horas en el navegador #Configura los parámetros session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $config['ssl'], true); session_save_path(str_replace("Sfphp", "Etc/Sesiones", realpath(dirname(__FILE__)))); #Definir el tipo de manejador de las sesiones if (strtoupper(trim($config['type'])) == "FILE") { session_set_save_handler(new Sfphp_SesionFile(), true); } if (strtoupper(trim($config['type'])) == "DB") { session_set_save_handler(new Sfphp_SesionDB(), true); } #Definir el nombre de la sesion segun la configuracion de la APP session_name($config['name']); #Ahora podemos iniciar la sesión session_start(); #Por default la sesion lleva informacion del navegador, sistema e ip y un token con esa información (tratando de hacer unico ese identificador) $_SESSION['__browser'] = Sfphp::obtenNavegador()['name']; $_SESSION['__token'] = md5(Sfphp::tokenCliente()); }
# Cuando la clase no se encuentra desde la carga directa # es por que es una clase ya sea de la applicación # o de una libreria en si # Las clases de la aplicación pueden ser personalizadas (Local) # o sobre la base del desarrollo (Core), para poder hacer # adecuaciones sin modificar la ruta original del sistema e incluso # poder realizar sobreescritura de clases básicas if (file_exists("./App/Local/" . $_archivo)) { include_once "./App/Local/" . $_archivo; } elseif (file_exists("./App/Core/" . $_archivo)) { include_once "./App/Core/" . $_archivo; } elseif (file_exists("./Libs/" . $_archivo)) { include_once "./Libs/" . $_archivo; } else { trigger_error("La clase {$nombreClase} no existe :: {$_archivo}", E_USER_ERROR); } } } }); # Se obtiene la configuración Sfphp_Config::get(); # Se aplica el valor por default de la cache if (!defined('APP_CACHE')) { define('APP_CACHE', FALSE); } # Se aplica el valor por default del log de querys if (!defined('DEV_QUERYLOG')) { define('DEV_QUERYLOG', FALSE); } # La función que captura los errores del framework set_error_handler("Sfphp_Error::procesa");
/** * Valida el acceso del usuario * @param array Datos de acceso * @return array */ public function login($data) { $query = "\n\t\tSELECT usuario, clave\n\t\tFROM usuarios\n\t\tWHERE clave = '{$data['clave']}'\n\t\t\tAND password = '******'password'], Sfphp_Config::get()['app']['key']) . "'\n\t\t\tAND activo = 1;"; return $this->db->query($query); }
# +hhyyyyyyhhhhhhhhhhhhd- -+++++++++++++++++++++. /ohhyyyyyhhoo. hhhhh dhhhy -shhhhd. .syhhhyyhhyo:` :+shhhyyhhho/ -/ohhhyyhhdo:` # # NOTICE OF LICENSE # # This source file is subject to the Open Software License (OSL 3.0) # that is available through the world-wide-web at this URL: # http://opensource.org/licenses/osl-3.0.php # # ----------------------- # @author: Iván Miranda # @version: 1.0.0 # ----------------------- # Ejecución del framework # ----------------------- require_once './Sfphp/__base.php'; $config = Sfphp_Config::get(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>sfphp</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <link rel="shortcut icon" href="favicon.ico"> </head> <body> <div class="panel panel-primary"> <div class="panel-heading">Simple Framework (for) PHP</div> <?php