ERROR AL EJECUTAR: $query
".mysql_error()."
"; } return false; } return $res; } function realScapeStringBBDD($campo, $esDeForm = false){ if(esMotorPostgreSqlBBDD()) { return pg_escape_string(($esDeForm ? $_POST[$campo] : $campo)); } else { global $link; if(get_magic_quotes_gpc()) { return mysqli_real_escape_string($link, mysqli_escape_string($link, $esDeForm ? $_POST[$campo] : $campo)); }else{ return mysqli_real_escape_string($link, ($esDeForm ? $_POST[$campo] : $campo)); } } } function fetchArrayBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_fetch_array($q); } else { return mysqli_fetch_array($q); } } function freeResultBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_free_result($q); } else { return mysqli_free_result($q); } } function insertIdBBDD(){ if(esMotorPostgreSqlBBDD()) { return pg_las_oid(); } else { global $link; return mysqli_insert_id($link); } } function numRowsBBDD($q){ if(esMotorPostgreSqlBBDD()) { return pg_num_rows($q); } else { return mysql_num_rows($q); } } function beginTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("BEGIN"); } else { global $link; return @mysqli_query($link, "BEGIN"); } } function commitTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("COMMIT"); } else { global $link; return @mysqli_query($link, "COMMIT"); } } function rollbackTransaction(){ if(esMotorPostgreSqlBBDD()) { return @pg_query("ROLLBACK"); } else { global $link; return @mysqli_query($link, "ROLLBACK"); } } /* * Para que funcione el export a CSV es necesario que el usuario de MySql tenga el permiso de file: * GRANT FILE ON *.* TO 'john'@'localhost';flush privileges; */ function exportToCsvBBDD($tableName, $fileOutputName, $headers = null, $tableColsFrom = "", $tmpDir = "") { includeInc("archivos"); if(!esMotorMySqlBBDD()) { exit("BASEDATOS: Solo se puede exportar a CVS con BBDD MySql"); } if($tmpDir == "") { //Miramos el directorio de MySql $sql = "SELECT @@secure_file_priv AS tmpDir;"; $sqlQ = queryBBDD($sql); $sqlA = fetchArrayBBDD($sqlQ); freeResultBBDD($sqlQ); if(!is_null($sqlA['tmpDir']) && $sqlA['tmpDir'] != "NULL" && $sqlA['tmpDir'] != "") { $tmpDir = $sqlA['tmpDir']; } else { $tmpDir = sys_get_temp_dir(); } } else { $tmpDir = (is_dir($tmpDir) && file_exists($tmpDir) ? $tmpDir : sys_get_temp_dir()); } $tableColsFrom = ($tableColsFrom == "" ? "*" : $tableColsFrom); $tmpDir = str_replace("\\", "/", $tmpDir); $tmpDir .= (substr($tmpDir, -1, strlen(1)) === "/" ? "" : "/"); $exportTmpFile = $tmpDir.time()."csv.tmp"; $sql = "SELECT ".$tableColsFrom." INTO OUTFILE '".$exportTmpFile."' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '".PHP_EOL."' FROM ".$tableName; //Borramos el fichero temporal si ya existía if(file_exists($exportTmpFile)) { eliminarArchivo($exportTmpFile); } //Ejecutamos la consulta if(!queryBBDD($sql)) { exit("BASEDATOS: Error al generar el CSV MySql (".mysql_error()."). SQL: ".$sql); } if(!file_exists($exportTmpFile)) { exit("BASEDATOS: PHP no existe el fichero: ".$exportTmpFile); } if(!is_readable($exportTmpFile)) { exit("BASEDATOS: PHP no tiene permisos para leer el fichero: ".$exportTmpFile); } //Descargamos el CSV if(file_exists($exportTmpFile)) { //descargarArchivo($exportTmpFile, $fileOutputName.".csv"); header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename='.$fileOutputName.'.csv'); header('Pragma: no-cache'); if(!is_null($headers) && is_array($headers)) { echo utf8_decode('"=""'.implode('""";"=""', $headers).'"""'.PHP_EOL); } $fp = fopen($exportTmpFile, 'r'); if($fp){ while(($line = fgets($fp)) !== false) { if($line != "") { $line = str_replace(PHP_EOL, '', $line); $line = str_replace('"', '', $line); $line = str_replace(';', '""";"=""', $line); //$line = str_replace(';"', '"";"="', $line); //$line = str_replace('";', '"";"="', $line); echo utf8_decode('"=""'.$line.'"""'.PHP_EOL); //echo utf8_decode($line.PHP_EOL); } } fclose($fp); eliminarArchivo($exportTmpFile); } return true; } else{ return false; } } function getMotorBBDD() { global $motorBBDD; if(isset($motorBBDD)) { return $motorBBDD; } else { return BASEDATOS_MOTOR_MYSQL; } } function esMotorPostgreSqlBBDD() { return (getMotorBBDD() == BASEDATOS_MOTOR_POSTGRESQL); } function esMotorMySqlBBDD() { return (getMotorBBDD() == BASEDATOS_MOTOR_MYSQL); } if(!function_exists('mysqli_set_charset')) { function mysqli_set_charset($dbh, $charset) { return mysqli_query($dbh, "set names $charset", $dbh); } } getUsuario(); }else{ return 0; } } function usuarioNivel(){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->getNivelAcceso(); }else{ return 0; } } function usuarioNombre(){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->getNombre()." ".$usuarioAutenticado->getApellidos(); }else{ return estaReg(); } } function compruebaNivel($nivel_acceso, $numError = 4){ global $urlPaginaLogin; if(!estaReg() || usuarioNivel() < $nivel_acceso){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function tienePermiso($permiso){ $usuarioAutenticado = getUsuarioAutenticado(); if($usuarioAutenticado){ return $usuarioAutenticado->tienePermiso($permiso); }else{ return false; } } function compruebaPermisos($permisos, $numError = 4){ global $urlPaginaLogin; $enco = tieneAlgunPermiso($permisos); if(!$enco){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function tieneAlgunPermiso($permisos){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); $permisosArray = preg_split("/,/", $permisos); if($usuarioAutenticado){ foreach($permisosArray AS $permiso){ if(tienePermiso($permiso)){ return true; } } } return false; } function compruebaRol($idRol, $numError = 4){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); if(!$usuarioAutenticado || !$usuarioAutenticado->tieneRol($idRol)){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function compruebaAlgunRol($roles, $numError = 4){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); $encontradoRol = false; if($usuarioAutenticado && is_array($roles)){ foreach($roles AS $idRol){ if($usuarioAutenticado->tieneRol($idRol)){ $encontradoRol = true; break; } } } if(!$encontradoRol){ redirecciona($urlPaginaLogin."?error1=".$numError); } } function compruebaAutenticado($numError = 3){ global $urlPaginaLogin; $usuarioAutenticado = getUsuarioAutenticado(); if(!$usuarioAutenticado){ redirecciona($urlPaginaLogin."?error1=".$numError); } } /* Funcion para generar passwords desde la web o desde el admin */ function nuevoPassword($len=6){ $i=0; srand(date("s")); while($i<$len){ $str.=chr((rand()%26)+97); $i++; } return $str; } function generaIdentificador(){ return session_id().time(); }