Web4Web.IT - Community Forums
Problema generazione pdf con TCPDF - Versione stampabile

+- Web4Web.IT - Community Forums (https://www.web4web.it/forum)
+-- Forum: Supporto Tecnico (/forum-21.html)
+--- Forum: Programmazione & Design (/forum-23.html)
+---- Forum: PHP (/forum-24.html)
+---- Discussione: Problema generazione pdf con TCPDF (/thread-228.html)



Problema generazione pdf con TCPDF - zawardo - 23-04-2010 16:08

Ho un problemone (one one one, perchè dovrei consegnare oggi), quando chiamo il metodo di output del'oggetto TCPDF con parametri di output il server mi da un simpatico errore 500 (Internal Server Error).
Se chiamo output senza paramteri funziona. I parametri mi servono per far chiedere al browser se si vuole salvare il file e non farlo aprire nel browser.
Il metodo è questo: http://goo.gl/5s56
e il problema si presenta solo in presenza del secondo parametro (quello che effettivamente sceglie come trattare l'output):

Codice PHP:
Isend the file inline to the browser (default). The plug-in is used if availableThe name given by name is used when one selects the "Save as" option on the link generating the PDF.
    * 
Dsend to the browser and force a file download with the name given by name.
    * 
Fsave to a local file with the name given by name.
    * 
S: return the document as a stringname is ignored

io utilizzo "D".

dal codice della classe:

Codice PHP:
#
case 'D': {
#
                    //Download file
#
                    
if(ob_get_contents()) {
#
                        
$this->Error('Some data has already been output, can\'t send PDF file');
#
                    
}
#
                    
if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) {
#
                        
header('Content-Type: application/force-download');
#
                    
} else {
#
                        
header('Content-Type: application/octet-stream');
#
                    
}
#
                    
if(headers_sent()) {
#
                        
$this->Error('Some data has already been output to browser, can\'t send PDF file');
#
                    
}
#
                    
header('Content-Length: '.strlen($this->buffer));
#
                    
header('Content-disposition: attachment; filename="'.$name.'"');
#
                    
echo $this->buffer;
#
                    
break;
#
                


Il mio codice è corretto perchè ho solo migrato da un'installazione locale e da un'altro shared host e su entrambi funziona senza colpo ferire. E' una qualche impostazione che impedisce il corretto funzionamento dell'header.
La macchina è x2.w4w.guest.it.
L'applicazione necessita di autenticazione quindi se servono credenziali le do in pvt.

Grazie 10.000.0000 anticipati


RE: Problema generazione pdf con TCPDF - Pirosauro - 23-04-2010 16:28

error_reporting com'è settato?
error log cosa dice?


RE: Problema generazione pdf con TCPDF - zawardo - 23-04-2010 16:55

(23-04-2010 16:28)Pirosauro Ha scritto:  : https://www.web4web.it/forum/post-1855.html#pid1855error_reporting com'è settato?
error log cosa dice?

error_reporting(E_ALL);
ini_set('log_errors',1);
ini_set('error_log','/home/xxx/domains/xxx/public_html/error.log');


totalmente lindo e vuoto, cmq è un erorre di apache, non è affatto detto che php dia errori.


RE: Problema generazione pdf con TCPDF - Gandalf - 23-04-2010 17:04

Mi dai il tuo username?


RE: Problema generazione pdf con TCPDF - zawardo - 23-04-2010 17:07

(23-04-2010 17:04)Gandalf Ha scritto:  : https://www.web4web.it/forum/post-1859.html#pid1859Mi dai il tuo username?

mandato in pvt link e credenziali.


RE: Problema generazione pdf con TCPDF - Gandalf - 23-04-2010 17:10

Sembra che tu stia sparando fuori un doppio header Content-Type:

Codice:
"error parsing headers: duplicate header 'Content-Type', referer: http://xxx.xxx.it/user.php"

Attiva la ricezione dei messaggi privati.


RE: Problema generazione pdf con TCPDF - zawardo - 23-04-2010 17:14

(23-04-2010 17:10)Gandalf Ha scritto:  : https://www.web4web.it/forum/post-1861.html#pid1861Sembra che tu stia sparando fuori un doppio header Content-Type:

Codice:
"error parsing headers: duplicate header 'Content-Type', referer: http://xxx.xxx.it/user.php"

Attiva la ricezione dei messaggi privati.

Attivati.

Per il doppio header non è che sono "io", è il metodo della classe x generare php + diffusoTongue

Grassie


RE: Problema generazione pdf con TCPDF - Gandalf - 23-04-2010 17:18

Prova a disattivarlo da dentro il metodo.


RE: Problema generazione pdf con TCPDF - zawardo - 23-04-2010 17:32

(23-04-2010 17:18)Gandalf Ha scritto:  : https://www.web4web.it/forum/post-1863.html#pid1863Prova a disattivarlo da dentro il metodo.
Codice PHP:
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream'false);
header('Content-Type: application/download'false);
header('Content-Type: application/pdf'false); 

Il punto incriminato è questo, ma a me pare un uso normale dell'header.
Cmq lasciando solo il force download funziona, ma io immagino che se ne appendeva altre 3 un motivo ci sarà stato (forse compatibilità con browser orreendi come quelli M$). Provo a lasciarlo così per ora, ma perchè questa ostilità nel content type multiplo? non l'avevo mai visto limitato.

Ciauz


RE: Problema generazione pdf con TCPDF - Gandalf - 23-04-2010 18:21

Credo sia una incompatibilità con FastCGI, che verifica che non ci siano header doppi.