Foros del Web » Programando para Internet » PHP »

Aqui les dejo la solucion para los notice Undefined index y variable en dompdf...

Estas en el tema de Aqui les dejo la solucion para los notice Undefined index y variable en dompdf... en el foro de PHP en Foros del Web. Que tal amigos, hace algun tiempo tuve unas horas de tortura al momento de tratar de generar pdf's con la grandiosa libreria dompdf , el ...
  #1 (permalink)  
Antiguo 16/12/2008, 07:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 21
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo

Que tal amigos, hace algun tiempo tuve unas horas de tortura al momento de tratar de generar pdf's con la grandiosa libreria dompdf, el problema era que me mostraba unos mensajes extraños al momento de preguntar por alguna variable que no tenga valor, por ejemplo:

Código:
if ($opcion=="1")
{
hacer();
}
Si en ese caso la variable $opcion estaba vacia, el explorador me mostraba un notice Undefined variable; le daba vueltas al asunto y nada, busque en internet y la unica solucion que consegui era utilizar isset($opcion), pero esa solucion no era nada elegante.

Pues de tanto buscar y buscar me puse a pensar y a revisar la libreria dompdf y me tope con el pequeño gran problema, era la funcion error_reporting de php. Solo habia que comentarla para que asi quedara desactivada:

En el archivo dompdf/dompdf-0.5.1/dompdf_config.inc.php, buscamos la linea 42, por lo menos en la version 0.5.1 y comentamos la funcion quedando asi:

Código:
//error_reporting(E_STRICT | E_ALL);
Claro hay que saber que cuando la desactivas no podras saber cuales son los errores que se presentan al momento de generar un pdf. Normalmente ese problema tambien se presenta porque ponemos el require_once("scripts/libreria/dompdf_config.inc.php"); mucho antes de donde se va a utilizar la libreria. Por eso recomiendo poner el require_once justo antes de hacer el llamado, algo asi:

Código:
$html='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
</body>
</html>';

//poner este require_once justo antes del new DOMPDF();
require_once("dompdf/dompdf-0.5.1/dompdf_config.inc.php");
$old_limit = ini_set("memory_limit", "16M");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('8.5x11','portrait');
$dompdf->render();
$dompdf=$dompdf->output();
file_put_contents("liquidacion.pdf", $dompdf);
header("location: liquidacion.pdf");
Espero que sea de mucha ayuda para todos los amigos desarrolladores.

Saludos...

En caso de que se sigan mostrando los notice se debe a que el error_reporting esta mal configurado en el archivo php.ini

Saludos

Última edición por GatorV; 16/12/2008 a las 13:40
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:34.