Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problemi con FPDF

  1. #1
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296

    Problemi con FPDF

    Buongiorno,
    avrei bisogno di un piccolo aiuto. Ho messo a punto uno script php che effettua una stampa tramite la classe FPDF.
    Funziona tutto bene, ho solo un problema. Se richiamo lo script di stampa tramite questa:

    Stampa

    dove $select contiene una stringa con una normale select su DB

    invio la stringa ad StElencoMisure.php dove ho, di conseguenza, necessità di utilizzare la select e quindi di indirizzare la lettura al DB corrente.
    Ho provato così:

    $selezione = $_GET[select];
    $mysql = NEW mysqli('127.0.0.1', 'root', '', ‘mioDB’)
    $risultati=$mysql->query($selezione) or die($mysql->error);


    e, ovviamente, funziona,

    se invece provo a fare così:

    $selezione = $_GET[select];
    $mysql = NEW mysqli($_SESSION['db_connect'])
    $risultati=$mysql->query($selezione) or die($mysql->error);


    dove

    $_SESSION['db_connect'] = NEW mysqli('127.0.0.1', 'root', '', 'mioDB' );

    precedentemente avvalorato in altro script, mi riporta l’errore: “No database selected ”.

    qualcuno sa dirmi perché ?

    C’è poi un altro aspetto che non capisco.
    Nello script di stampa ho:

    <?php ob_start();
    include('../../fpdf/fpdf.php');
    $select = $_GET[select];
    class PDF extends FPDF
    { …
    }
    ?>


    e funziona tutto bene, se invece inserisco una include

    <?php ob_start();
    include('../../fpdf/fpdf.php');
    include(‘../riga.php’);

    $select = $_GET[select];
    class PDF extends FPDF
    { …
    }
    ?>


    con riga.php :

    <?
    $stringa = "prova";
    ?>


    mi genera l’errore:

    FPDF error: Some data has already been output, can't send PDF file

    Anche in questo caso non ho idea del perchè, ma forse mi sfugge qualcosa.

    HELP ME! Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    La risposta alla prima domanda mi sembra logica, non puoi salvare una sessione di un database in una sessione, devi comunque connetteti. Al massimo puoi salvare i dati del database nelle sessioni in modo che non ti devi connettere sempre.
    Per la seconda è come se metti dentro il primo file php un' altra pagina. Infatti la libreria la considera come se fosse del testo, non gli importa se è tra i tag <?php e ?>, lo cosidera come testo lo stesso.


  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Domanda n. 1 -- hai messo l'INTERA QUERY per il db nella query string? paura

    Domanda n. 2 -- probabilmente nel file incluso hai qualche carattere dopo il tag di chiusura del php, magari un'intera riga vuota. Guardaci bene o, al limite, elimina il tag di chiusura.

  4. #4
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da simo22
    La risposta alla prima domanda mi sembra logica, non puoi salvare una sessione di un database in una sessione, devi comunque connetteti. Al massimo puoi salvare i dati del database nelle sessioni in modo che non ti devi connettere sempre.
    Per la seconda è come se metti dentro il primo file php un' altra pagina. Infatti la libreria la considera come se fosse del testo, non gli importa se è tra i tag <?php e ?>, lo cosidera come testo lo stesso.

    In effetti ho commesso un piccolo errore nel riportare il codice, il codice corretto è:
    Codice PHP:
    $selezione $_GET[select];
    $mysql = NEW mysqli($_SESSION['db_connect']) 
    $risultati=$mysql->query($selezione) or die($mysql->error); 

    dove 

    $_SESSION
    ['db_connect'] = NEW mysqli('127.0.0.1''root''''mioDB' ); 
    ti assicuro che fuori dal contesto FPDF funziona alla grande. Il fatto è che sembra "perdere" le variabili passate con la $_SESSION.
    Per quanto riguarda la tua seconda risposta, lo so che è come se mettessi il codice dentro lo script, è proprio quello che voglio fare, solo che non so perchè ma non mi riesce.

    Ho verificato ed inserisco solo le tre righe che ho riportato e non ci sono spazi nè righe vuote.

    Diciamo che la cosa fondamentale è la seconda richiesta (riuscire ad inserire una include), perchè risolverei di conseguenza anche il resto.

  5. #5
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da luca200
    Domanda n. 1 -- hai messo l'INTERA QUERY per il db nella query string? paura

    ...

    Lavorando con i frames non ho il problema della visualizzazione della query nella url (almeno credo ).

  6. #6
    mmmhhh... prova a navigare il tuo sito con Chrome e vedi se nella barra di status non ti compare il link con tutta la query... pericolosissimo!!!

  7. #7
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Allora, faccio il punto della situazione.

    Se all'interno dello script che richiama la classe FPDF inserisco questa include:

    Codice PHP:
    include('function.php'); 
    dove function php:

    Codice PHP:
    <?php
    $_SESSION
    ['db_connect']= NEW mysqli('127.0.0.1''root''''agricoltura_new');
    function 
    connessione_database()
    {  return 
    $connessione_al_database=$_SESSION['db_connect']; }
    ?>

    Mi dà l'errore:

    FPDF error: Some data has already been output, can't send PDF file


    se elimino l'istruzione della $_SESSION l'errore sparisce (non se il resto funge, però già questo fatto mi blocca...). E' come se la $_SESSION desse problemi all'interno della FPDF.

    N.B. Non ci sono righe vuote nè all'interno nè prima nè dopo le istruzioni.

  8. #8
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da chrismo
    mmmhhh... prova a navigare il tuo sito con Chrome e vedi se nella barra di status non ti compare il link con tutta la query... pericolosissimo!!!

    Il fatto è che se riesco a risolvere il problema della include ( e di conseguenza della $_SESSION) non ho più quello della select passata nella $_GET.

  9. #9
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Originariamente inviato da otello
    Allora, faccio il punto della situazione.

    Se all'interno dello script che richiama la classe FPDF inserisco questa include:

    Codice PHP:
    include('function.php'); 
    dove function php:

    Codice PHP:
    <?php
    $_SESSION
    ['db_connect']= NEW mysqli('127.0.0.1''root''''agricoltura_new');
    function 
    connessione_database()
    {  return 
    $connessione_al_database=$_SESSION['db_connect']; }
    ?>

    Mi dà l'errore:

    FPDF error: Some data has already been output, can't send PDF file


    se elimino l'istruzione della $_SESSION l'errore sparisce. E' come se la $_SESSION desse problemi all'interno della FPDF.

    N.B. Non ci sono righe vuote nè all'interno nè prima nè dopo le istruzioni.

    Up! Nessuno?

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da otello
    se elimino l'istruzione della $_SESSION l'errore sparisce
    Questo mi fa pensare che la sessione venga creata in questo file. Fai in modo che venga creata in un file precedente, e il problema dovrebbe sparire.

    P.S. file precedente = file che viene richiamato dall'utente prima di quello che deve generare il pdf

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 © 2025 vBulletin Solutions, Inc. All rights reserved.