Example #1
0
 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);
         }
     }
 }
Example #2
0
 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);
     }
 }
Example #3
0
 public static function get($atributo = '')
 {
     if (!self::$instancia instanceof self) {
         self::$instancia = new self();
     }
     if (strlen(trim($atributo))) {
         return self::$instancia->config[$atributo];
     } else {
         return self::$instancia->config;
     }
 }
Example #4
0
 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());
 }
Example #5
0
            # 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");
Example #6
0
 /**
  * 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);
 }
Example #7
0
# +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