jueves, 7 de noviembre de 2019

Habilitar errores en php

Habilitar Errores en PHP
En muchos servidores por seguridad se deshabilitan las opciones de reporte de errores que pueden producir los scripts, haciendo difícil la ubicación de dicho error, una forma de habilitar esta opción es mediante código que debemos agregar al inicio del script PHP

error_reporting(E_ALL);
ini_set('display_errors', '1');


miércoles, 5 de septiembre de 2018

El formato y la extensión de archivo de 'Excel.xlsx' no coinciden. Puede que el archivo esté dañado o no sea seguro. No lo abra a menos que confíe en su origen PHPExcel


Buenos días a todos.

PROBLEMA
Hoy me tope con este problema al intentar usar la clase PHPExcel, que por las referencia en internet, nos sirve para importar y exportar a diferentes formatos de office, dentro de las cuales yo pretendía usar el formato xlsx.

De todo los ejemplos descargados, todo tenían como denominador común el siguiente mensaje.

y al abrir el archivo me mostraba el siguiente detalle.

SOLUCIÓN

Debemos de buscar el archivo que esta generando el error, en mi caso la linea 581, del archivo Functions.php

Al hacer el comentario y probarlo, todo empezó a funcionar de maravilla, espero que les sirva de ayuda.

jueves, 26 de octubre de 2017

Error con acentos y eÑes en PHP/MySQL (Solucionado)


Error con acentos y eÑes en PHP/MySQL (Solucionado)

Muchas veces al crear una web con PHP y MySQL, ocurre un problema al introducir y mostrar datos: estos se alteran acabando en Ã¡Ã³Ã± y cosas parecidas.

Cuando me pasa esto suelo empezar a toquetear cosas, cambiar charsets y traducir a ñ o á pero nada funciona. El problema es que la configuración del cotejamiento de los caracteres especiales como acentos, eñes y demás símbolos no es el mismo entre la base de datos (MySQL), el lenguaje de servidor (PHP) y el servidor (Apache). Así que me puse a buscar y después de encontrar comentarios buenísimos de gente por los foros puedo hacer un resumen de todo lo necesario cuando nos ocurre un problema de estos (id haciendo y testeando si ya funciona todo bien paso a paso).

Guía paso a paso para solucionar el problema de los acentos y eñes

  1. Cotejamiento
    Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en utf_unicode_ci (más tarde en Operations > Collation de phpMyAdmin se puede cambiar)
  2. Content type HTML
    Pon en el <head> de todos los archivos HTML:
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  3. Content type PHP
    Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:
    header("Content-Type: text/html;charset=utf-8");
  4. Set names
    Al crear la conexión de PHP con MySQL, envía esta consulta justo tras la conexión:
    mysqli_query("SET NAMES 'utf8'");
    (Para MySQLi escribe $acentos = $db->query("SET NAMES 'utf8'");)
  5. Convertir codificado a UTF-8
    Convierte todo lo que esté codificado de latin1 a UTF-8
    SELECT convert(cast(convert(content using latin1) as binary) using utf8) AS content
  6. Apache
    Quita el DefaultCharset del Apache o modifícalo
  7. htmlentities
    Como última y desesperada opción, quita todos los htmlentities(); y sustitúyelo por otro parser para ‘sanitizar’ los datos.
Haciendo estos pasos se solucionará cualquier problema de codificación de caracteres. Si te ha servido este artículo, ahorra la frustración a otros programadores compartiendo el artículo en Twitter, Facebook o Google+ con los botones de abajo.
Si estás empezando con PHP/MySQL te recomiendo utilizar el código que tengo publicado aquí que es seguro, fácil de usar y funciona muy bien. También está la versión en PDO utilizando named parameters que es incluso más sencilla.
Para aprender a programar lo mejor es que te compres un libro físico para tenerlo al lado del ordenador a modo de consulta/referencia, te recomiendo sin lugar a dudas Domine PHP y MySQL, es el libro mejor recomendado que desde hace muchos años siempre tengo al alcance cuando programo y el hecho de consultarlo físicamente me ayuda a consolidar y memorizar mucho mejor los conceptos.

viernes, 27 de marzo de 2015

Error cuando se llama a la funcion set_magic_quotes_runtime()


Function set_magic_quotes_runtime()


Hola a todos.
Esto me ocurrió cuando quería usar FPDF para crear reportes con php, entonces cuando me dispuse a utilizar la clase me salió el error: Fatal error: Call to undefined function get_magic_quotes_runtime() . Y no crea ningun pdf en pantalla.

Revisando en internet y haciendo las pruebas del caso, este error se debe a que la función get_magic_quotes_runtime()  ya no se usa y está obsoleta en versiones actuales de php.

Para solucionarlo nos vamos a la "fpdf/fpdf.php" dependiendo donde se descomprimió la librería y hacemos las siguientes correcciones:

Solo para recalcar, estoy usando la versión 1.7 de FPDF.Descargar

Codigo original:


Corregimos de la siguiente manera

Comentamos las líneas 1054 y 1055 y escribimos: ini_set(“magic_quotes_runtime”,0);
Guardamos y todo vuelve a funcionar sin problemas.



P.D. en algunos casos:

Cambiamos
set_magic_quotes_runtime($mqr);
por

ini_set("magic_quotes_runtime", $mqr);

Espero que les sirva de algo.