[PHP] Generare file pdf con inserimento dati

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
Buonasera amici del forum, spero di postare la mia richiesta nella sezione giusta;

Avendo creato con voi insert.php ora mi preme sapere come generare un file pdf con i dati raccolti e inviati al db , in questo file ci dovranno essere i dati utente, il logo la privacy da me creata e firma cliente

Grazie in anticipo.
 

Sergio Unia

Utente Attivo
7 Gen 2016
28
1
3
Todi
www.sunelweb.net
Ci sono varie librerie in rete per generare pdf con php. Io uso http://www.fpdf.org/ che forse non è la più evoluta ma ci sono abituato da tempo.
Un buon metodo è quello di estendere la classe FPDF che prevede già un metodo header, un footer e altre funzioni, quindi ottieni un resultSet dal database e in un ciclo componi le righe da scrivere e le passi alla classe che hai esteso.
Quando esci dal ciclo usi il metodo write per creare il pdf poi, opzionalmente, reindirizzi sul file creato per visualizzarlo.
Mi rendo conto che detto così non è molto chiaro ma se dai un'occhiata alla documentazione di FPDF poi posso chiarirti i dubbi.
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
HELP sembra stai parlando arabo :(:(:(:(:(
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
si certo @Sergio Unia grazie cosi mi faccio un'idea ma il download che ho scaricato da fpdf v 1.8 devo inserirlo nel mio spazio web?
 

Sergio Unia

Utente Attivo
7 Gen 2016
28
1
3
Todi
www.sunelweb.net
Si, devi caricare l'intera cartella. Volendo puoi togliere la documentazione.
Ti allego due file: esempio.txt contiene il codice php, l'altro file è il pdf risultante.
Tieni conto che ho "semplificato" un po' il codice per renderlo più comprensibile ma non ho avuto modo di testarlo, quindi potrebbe avere qualche errore banale. Del resto non devi fare copia e incolla ma dovrebbe servirti solo per farti un'idea.
Prova a leggere il codice seguendo quello che ti ho scritto nel post precedente.
Fammi sapere ... buon lavoro.

Sergio
 

Allegati

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
puoi guardare anche questo esempio,
http://forum.mrwebmaster.it/threads...e-risultato-query-con-fpdf.45828/#post-178422
lo script genera liste diverse semplicemente modificando dei parametri

la classe PDF può essere isolata in un suo file php e richiamata con "require_once" in tutti gli script "esecutori" in cui serve

in particolare puoi inserire il titolo della lista nella variabile apposita (che ora è solo inizializzata),
e nel ciclo "while" passare la sola riga letta dal db, togliendo gli "if" (che erano una specificità voluta da Max61)
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
Ragazzi è troppo difficile non ci riesco ho provato ma nulla se potete darmi voi una mano vi fornisco i dati altrimenti lascio perdere perchè è veramente difficile per me che è la prima volta che utilizzo queste librerie. Ho provato a scaricare questa versione fpdf.org ho inserito i file nel mio spazio web ma nulla giuro nn lo so usare :oops::oops::oops::oops::oops::oops::oops:
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
PHP:
<html>
<head>
<title>Selfcare :: cliente</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="script.js"></script> 
<head>

      <?php



         if(isset($_POST['Tessera'])) {



            $dbhost = 'localhost';



            $dbuser = '';



            $dbpass = '';



            $conn = mysql_connect($dbhost, $dbuser, $dbpass);



           



            if(! $conn ) {



               die('Could not connect: ' . mysql_error());



            }



           



            if(! get_magic_quotes_gpc() ) {



               $Tessera = addslashes ($_POST['Tessera']);
               
               $Codice_agenzia = addslashes ($_POST['Codice_agenzia']);
               
               $Agenzia = addslashes ($_POST['Agenzia']);

               $Nome = addslashes ($_POST['Nome']);

              $Cognome = addslashes ($_POST['Cognome']);

              $Codice_fiscale = addslashes ($_POST['Codice_fiscale']);

              $Codice_cliente = addslashes ($_POST['Codice_cliente']);

              $Indirizzo = addslashes ($_POST['Indirizzo']);

              $Comune = addslashes ($_POST['Comune']);

              $Data_di_nascita = addslashes ($_POST['Data_di_nascita']);

              $Indirizzo_email = addslashes ($_POST['Indirizzo_email']);

              $Telefono = addslashes ($_POST['Telefono']);

              $Username = addslashes ($_POST['Username']);

              $Password = addslashes ($_POST['Password']);
             
              $Conferma_password = addslashes ($_POST['Conferma_password']);



            }else {



               $Tessera = $_POST['Tessera'];
               
               $Codice_agenzia = $_POST['Codice_agenzia'];
               
               $Agenzia = $_POST['Agenzia'];

              $Cognome = $_POST['Cognome'];

               $Nome = $_POST['Nome'];

              $Codice_fiscale = $_POST['Codice_fiscale'];

              $Codice_cliente = $_POST['Codice_cliente'];

              $Indirizzo = $_POST['Indirizzo'];

              $Comune = $_POST['Comune'];

              $Data_di_nascita = $_POST['Data_di_nascita'];

              $Indirizzo_email = $_POST['Indirizzo_email'];

              $Telefono = $_POST['Telefono'];

              $Username = $_POST['Username'];

              $Password = $_POST['Password'];
             
              $Conferma_password = $_POST['Conferma_password'];

       

            }




             $sql = "INSERT INTO Profilo ". "(Tessera, Codice_agenzia, Agenzia, Cognome, Nome, Codice_fiscale, Codice_cliente, Indirizzo, Comune, Data_di_nascita, Indirizzo_email, Telefono, Username, Password, Conferma_password)"." VALUES('$Tessera', '$Codice_agenzia', '$Agenzia', '$Cognome','$Nome','$Codice_fiscale','$Codice_cliente', '$Indirizzo', '$Comune','$Data_di_nascita','$Indirizzo_email','$Telefono','$Username','$Password','$Conferma_password')";

            mysql_select_db('');
            $retval = mysql_query( $sql, $conn );



           



            if(! $retval ) {



               die('Could not enter data: ' . mysql_error());



            }


echo '<br><br>
<DIV align="center"><div style="width:900px;height:800px;-webkit-border-radius: 0px;-moz-border-radius: 0px;border-radius: dashed 0px;background-color:#FFFFFF;-webkit-box-shadow: #B3B3B3 16px 16px 16px;-moz-box-shadow: #B3B3B3 16px 16px 16px; box-shadow: #B3B3B3 16px 16px 16px;">
<table>
<tr>
<td ALIGN="LEFT" >
<div align="left"><img src="image.png" style="width:250; heigth:150; margin:7px;"></div>
</td>
<TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
<td>&nbsp;&nbsp;&nbsp;&nbsp; Modulo inserimento dati - UTENTE - ATTIVAZIONE CARTA</td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;QUI INSERISCO IL CODICE A BARRE</td> //QUI DEVE APPARIRE L'IMMAGINE DEL CODICE 
   
</tr>
</table>

<fieldset>
<legend>DATI AZIENDA </legend>
<td><br></td>
<TABLE>
<tr>
<td><p>Codice agenzia</p>
<input type="text" value="$Codice_agenzia"></td>
<td><p>Tessera</p>
<input type="text" value="[$Tessera]"></td>
<td><p>Agenzia</p>
<input type="text" value="$Agenzia"></td>
<td><br><br><br></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>DATI ANAGRAFICI</legend>
<td><br></td>
<TABLE>
<tr>
<td>Nome
<input type="text" value="$Nome"></td>
<td>Cognome
<input type="text" value="$Cognome"></td>
<td>Data di nascita 
<input type="text" value="$Data_di_nascita"></td>
<td>Codice fiscale
<input type="text" value="$Codice_fiscale"></td>
</tr>
<td><br></td>
<tr>
<td>Indirizzo
<input type="text" value="$Indirizzo"></td>
<td>Comune
<input type="text" value="$Comune"></td>
<td>Indirizzo email
<input type="text" value="$Indirizzo_email"></td>
<td>Telefono
<input type="text" value="$Telefono"></td>
</tr>
</TABLE>
</fieldset>
</div>';

            mysql_close($conn);



         }else {



            ?>
grazie @Sergio Unia
 

Sergio Unia

Utente Attivo
7 Gen 2016
28
1
3
Todi
www.sunelweb.net
Ciao,
non ci siamo capiti, dicevo le tabelle del database.
Se hai phpmyadmin scegli la tabella "profilo", fai esporta, poi scegli "Solo struttura" e posti qui il file che ti genera.
Se non ci riesci dimmelo che ne faccio a meno e la ricostruisco dalla tua insert.
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
come la esporto in SQL o PDF?
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
in sql non me la fa caricare sul forum
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
ok ce lo fatta
 

Allegati

Sergio Unia

Utente Attivo
7 Gen 2016
28
1
3
Todi
www.sunelweb.net
Ottimo, ho scaricato il file e lo leggo.
Ora sono in ufficio, ci lavoro questa sera e ti posto il risultato entro domani mattina.
Una curiosità.... veramente la tabella contiene 2 miliardi di record ??? :eek::eek:
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
boooooo
 

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
no, non contiene 2 mld di record, è solo un modo per avere un numero a cifre costanti

ps, senza carattere di controllo, per cui in caso di "incidente" alla lettura, se dovesse essere inserito manualmente, c'è rischio di attribuire i punti non al legittimo proprietario
 

Sergio Unia

Utente Attivo
7 Gen 2016
28
1
3
Todi
www.sunelweb.net
Ciao Cris8380,
nel file compresso allegato troverai tre cartelle. La prima contiene la libreria fpdf (che puoi tranquillamente sostituire con quella che hai scaricato che è probabilmente più recente). La cartella "img" contiene un logo. Puoi sostituirlo con il tuo modificando il percorso (riga 21 del file MyPDF.class.php della cartella "pdf").
La cartella "pdf" contiene il codice php. Noterai che non è un solo file perché lo script ha una struttura 'genealogica':
la classe FPDF crea documenti generici vuoti, la classe "MyPDF" è sua "figlia" ed eredita le sue proprietà ma ne aggiunge di nuove e così via. E' in pratica un semplice esempio di programmazione ad oggetti.

Veniamo ora a quello che devi fare tu:

copia la cartella "pdf" nel tuo sito e modifica i permessi per renderla scrivibile
modifica il percorso del logo come detto sopra
leggi i commenti che ho inserito nel file profilo_pdf
modifica i parametri di connessione al db nel file profilo_pdf

lancia da browser : http://tuosito/pdf/profilo_pdf.php

e dovresti ottenere la visualizzazione del file pdf creato dallo script.

Se vuoi modificare il pdf ad esempio aggiungendo altre informazioni a quelle stampate da me dovresti riuscirci tranquillamente con i commenti che trovi nel codice, comunque se hai problemi postali qui.

Buona fortuna.

s.
 

Allegati

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
37
Sergio non so davvero come ringraziarti per l'aiuto dato. spero di non avere problemi, davvero grazie.