Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ezpdf su aruba (sbaglio qualcosa...)

    allora:
    hosting windows aruba php 4 ....

    in locale la creazione automatica del pdf tramite la classe R&OS ezpdf funziona correttamente... su aruba ho dei problemi...praticamente quando clicco per scaricare il pdf si apre la finestra del download, faccio salva sul desktop ma il file rimane in download per lungo tempo...come se andasse in timeout.. e questo addirittura su firefox provoca il blocco del sito...stranmamente non su IE..

    so che sbaglio io qualcosa per due motivi (anche se in locale è tutto ok):
    1 - joomla usa lo stesso script e funzia
    2 - lo stesso problema identico l'ho riscontrato usando fpdf

    credo sia qualche problema sugli headers php....credo...

    vi posto il codice se potete darci un'occhiata...

    questo è lo script che fa il controllo della variabile GET
    Codice PHP:
    <?php

    include_once("ls/gzip/init_gzip.php");
    include_once(
    "ls/conn/conn.php");

    if(isset(
    $_GET['file']) && (dirname($_GET['file']) == "." || dirname($_GET['file']) == "./ls" || dirname($_GET['file']) == "ls") && $_GET['file']!="" && $_GET['file']!==NULL) {
        include_once(
    "ls/stripTagsPlus/strip_tags_plus.php");
        
    $get strip_tags_attributes($_GET['file']);
        
    //$get = strip_tags($_GET['file']);
        
    include_once("ls/replaceCharGet/replaceCharGet.php");
        
    $conn connetti();
        
    $get mysql_real_escape_string($get);
        
    $get replaceCharGet($get);
        
    $qpag mysql_query("SELECT pagina FROM contenuti") or die("Errore scaricamento dati per il Download");
        if(
    $qpag==FALSE) {
            
    disconnetti($conn);
            echo 
    '<div align="center">[img]img/generale/logo.gif[/img]
    [b]<h1>Nessun argomento da scaricare</h1>[/b]</div><div align="center"><script type="text/javascript" language="javascript">document.write("<a href=\"javascript:history.back(-1);\" title=\"torna indietro\">torna indietro</a>");</script><noscript>torna indietro con il tasto del Browser</noscript></div>'
    ;
            include_once(
    "ls/gzip/close_gzip.php");
            exit;
        } else {
            
    $pagine = array();
            while(
    $respag=mysql_fetch_array($qpag)) {
                
    $pagine[] = $respag['pagina'];
            }
        }
        
    $check FALSE;
        for(
    $i=0$i<count($pagine); $i++) {
            if(
    $get==$pagine[$i]) {
                
    $check TRUE;
            }
        }
        if(
    $check && $get!="carrozzerie") {
            
    $q mysql_query("SELECT * FROM contenuti WHERE pagina='$get'") or die("Errore scaricamento dati per il Download");
            if(
    $q==FALSE) {
                
    disconnetti($conn);
                echo 
    '<div align="center">[img]img/generale/logo.gif[/img]
    [b]<h1>Nessun argomento da scaricare</h1>[/b]</div><div align="center"><script type="text/javascript" language="javascript">document.write("<a href=\"javascript:history.back(-1);\" title=\"torna indietro\">torna indietro</a>");</script><noscript>torna indietro con il tasto del Browser</noscript></div>'
    ;
                include_once(
    "ls/gzip/close_gzip.php");
                exit;
            } else {
                while(
    $res=mysql_fetch_assoc($q)) {
                    
    $titolo $res['titolo'];
                    
    $descrizione $res['descrizione'];
                    
    $keywords $res['keywords'];
                    
    $contenuto $res['contenuto'];
                }    
            }
            
    disconnetti($conn);
    /*******************************************/
                   //file che provvede alla creazione del pdf
            
    include_once("ls/download/download.php"); 
                  
    /***********************************/
            
    include_once("ls/gzip/close_gzip.php");
            exit;
        } else {
            
    disconnetti($conn);
            echo 
    '<div align="center">[img]img/generale/logo.gif[/img]
    [b]<h1>Nessun argomento da scaricare</h1>[/b]</div><div align="center"><script type="text/javascript" language="javascript">document.write("<a href=\"javascript:history.back(-1);\" title=\"torna indietro\">torna indietro</a>");</script><noscript>torna indietro con il tasto del Browser</noscript></div>'
    ;
            include_once(
    "ls/gzip/close_gzip.php");
            exit;
        }
    } else {
        echo 
    '<div align="center">[img]img/generale/logo.gif[/img]
    [b]<h1>Nessun argomento da scaricare</h1>[/b]</div><div align="center"><script type="text/javascript" language="javascript">document.write("<a href=\"javascript:history.back(-1);\" title=\"torna indietro\">torna indietro</a>");</script><noscript>torna indietro con il tasto del Browser</noscript></div>'
    ;
        include_once(
    "ls/gzip/close_gzip.php");
        exit;
    }

    ?>
    questo è il file che provvede alla creazione del pdf
    Codice PHP:
    error_reporting(E_ALL);
    set_time_limit(1800);

    include (
    'ls/ezpdf/class.ezpdf.php');
        
        
    $titolo str_replace("&deg;",chr(176),$titolo);
        
    $titolo str_replace("&euro;",chr(128),$titolo);
        
    $titolo str_replace("&quot;",chr(34),$titolo);
        
    $titolo str_replace("&rsquo;",chr(180),$titolo);
        
    $titolo str_replace("&raquo;",chr(187),$titolo);
        
    $titolo str_replace("&laquo;",chr(171),$titolo);
        
    $titolo str_replace("&agrave;",chr(224),$titolo);
        
    $titolo str_replace("&egrave;",chr(232),$titolo);
        
    $titolo str_replace("&igrave;",chr(236),$titolo);
        
    $titolo str_replace("&ograve;",chr(242),$titolo);
        
    $titolo str_replace("&ugrave;",chr(249),$titolo);
        
    $titolo str_replace("&Agrave;",chr(192),$titolo);
        
    $titolo str_replace("&Egrave;",chr(200),$titolo);
        
    $titolo str_replace("&Igrave;",chr(204),$titolo);
        
    $titolo str_replace("&Ograve;",chr(210),$titolo);
        
    $titolo str_replace("&Ugrave;",chr(217),$titolo);
        
    $titolo str_replace("&aacute;",chr(225),$titolo);
        
    $titolo str_replace("&eacute;",chr(233),$titolo);
        
    $titolo str_replace("&iacute;",chr(237),$titolo);
        
    $titolo str_replace("&oacute;",chr(243),$titolo);
        
    $titolo str_replace("&uacute;",chr(250),$titolo);
        
    $titolo str_replace("&Aacute;",chr(193),$titolo);
        
    $titolo str_replace("&Eacute;",chr(201),$titolo);
        
    $titolo str_replace("&Iacute;",chr(205),$titolo);
        
    $titolo str_replace("&Oacute;",chr(211),$titolo);
        
    $titolo str_replace("&Uacute;",chr(218),$titolo);
        
        
    $contenuto str_replace("&deg;",chr(176),$contenuto);
        
    $contenuto str_replace("&euro;",chr(128),$contenuto);
        
    $contenuto str_replace("&quot;",chr(34),$contenuto);
        
    $contenuto str_replace("&rsquo;",chr(180),$contenuto);
        
    $contenuto str_replace("&raquo;",chr(187),$contenuto);
        
    $contenuto str_replace("&laquo;",chr(171),$contenuto);
        
    $contenuto str_replace("&agrave;",chr(224),$contenuto);
        
    $contenuto str_replace("&egrave;",chr(232),$contenuto);
        
    $contenuto str_replace("&igrave;",chr(236),$contenuto);
        
    $contenuto str_replace("&ograve;",chr(242),$contenuto);
        
    $contenuto str_replace("&ugrave;",chr(249),$contenuto);
        
    $contenuto str_replace("&Agrave;",chr(192),$contenuto);
        
    $contenuto str_replace("&Egrave;",chr(200),$contenuto);
        
    $contenuto str_replace("&Igrave;",chr(204),$contenuto);
        
    $contenuto str_replace("&Ograve;",chr(210),$contenuto);
        
    $contenuto str_replace("&Ugrave;",chr(217),$contenuto);
        
    $contenuto str_replace("&aacute;",chr(225),$contenuto);
        
    $contenuto str_replace("&eacute;",chr(233),$contenuto);
        
    $contenuto str_replace("&iacute;",chr(237),$contenuto);
        
    $contenuto str_replace("&oacute;",chr(243),$contenuto);
        
    $contenuto str_replace("&uacute;",chr(250),$contenuto);
        
    $contenuto str_replace("&Aacute;",chr(193),$contenuto);
        
    $contenuto str_replace("&Eacute;",chr(201),$contenuto);
        
    $contenuto str_replace("&Iacute;",chr(205),$contenuto);
        
    $contenuto str_replace("&Oacute;",chr(211),$contenuto);
        
    $contenuto str_replace("&Uacute;",chr(218),$contenuto);
        
        
    $contenuto str_replace("<ul>","\n",$contenuto);
        
    $contenuto str_replace("[list=1]","\n",$contenuto);
        
    $contenuto str_replace("[list=1]","\n",$contenuto);
        
    $contenuto str_replace("<ul class=\"lett_legale\">","\n",$contenuto);
        
    $contenuto str_replace("<ul class=\"ul_pdf2\">","\n",$contenuto);
        
    $contenuto str_replace("<ul id=\"ul_pdf\">","\n",$contenuto);
        
    $contenuto str_replace("[/list]","\n",$contenuto);
        
    $contenuto str_replace("[/list]","\n",$contenuto);
        
    $contenuto str_replace("[*]","              - ",$contenuto);
        
    $contenuto str_replace("","\n",$contenuto);
        
    $contenuto str_replace("
    "
    ,"\n",$contenuto);
        
    $contenuto str_replace('<div class="blank_center">',"",$contenuto);
        
    $contenuto str_replace("</div>","",$contenuto);
        
        
    $contenuto strip_tags($contenuto,'[b]');
        
        
        
    $pdf =& new Cezpdf();
        
    $pdf->selectFont('ls/ezpdf/fonts/Helvetica.afm');
        
    $pdf->ezText($titolo,20,array('justification'=>'centre'));
        
    $pdf->ezText("\n");
        
    $pdf->ezText($contenuto,10);
        
    $pdf->ezStream();

        
    $title str_replace(" ","_",$titolo).'.pdf';
        
    header("Expires: 0");
        
    header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
        
    header("Cache-Control: private");
        
    header("Pragma: public"); 
        
    header("Content-type: application/octet-stream");    
        
    header("Content-Type: application/force-download;");
        
    header("Content-Type: application/pdf");
        if(
    strpos(strtoupper($_SERVER['HTTP_USER_AGENT']),'MSIE 6') !== FALSE) {
            
    header("Content-disposition: inline; filename=".$title);
        } else {
            
    header("Content-disposition: attachment; filename=".$title);
        }
        
        
    header('Content-Transfer-Encoding: binary'); 
    aiuto...
    Per una battaglia sono sempre a disposizione

  2. #2
    mmm per la conversione delle entità in html c'è il comodissimo html_entity_decode mentre per gli altri puoi usare un array chiave/valore con strtr invece di una sfilza di comandi

    detto questo prova a togliere la riga
    include_once("ls/gzip/init_gzip.php");

    magari gli da fastidio

  3. #3

    [ RISOLTO ]

    inanzitutto sì, era questo, include_once("ls/gzip/init_gzip.php"); , che dava fastidio...anche se non lo comprendo in quanto da quello che so bisogna attivare il buffer dell'output per inviare più headers...

    poi html_entity_decode non lo conoscevo..ottima soluzione nativa!

    alla fine invece, avendo capito cosa dava fastidio, sono tornato a FPDF estendendola con la classe WriteHTML in quanto gestiscde molto meglio i tag html e links rispetto a ezpdf, e in più è di semplicità estrema il force download con fpdf, basta fare così :

    Codice PHP:
    $nomefile "plutohasbranatopippo.pdf";
    $pdf->Output($nomefile,"D"); 
    dove D è proprio il parametro per il forcedownload


    cmq grazie per la risposta!

    a buon rendere

    Per una battaglia sono sempre a disposizione

  4. #4
    il motivo che gli dava fastidio è che immagino che il file init_gzip.php sicuramente impostava un handler delle ob (output buffer) per inviare il tutto compresso in gzip

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.