IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PDF] pdf formulaire submit à l'intérieur


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut [PDF] pdf formulaire submit à l'intérieur
    bonjour à tous

    Alors tout d'abord, j'ai un formulaire sur une page(appelons-la page1.php).
    Les données entrée par l'utilisateur s'enregistre bien dans ma BDD, mais de +, lors du clic, un PDF s'ouvre ! (à ma demande hein, pas par magie).

    dans ce PDF, j'ai juste mit un champ pour ne pas trop m'embrouiller le temps que cela fonctionne, (il s'apelle numero de l'offre... dans ce champ, je récupère les données dans ma table 'offre'.(champ BDD :numero)

    j'ai également dans mon script (script.php), mit a part l'enregistrement des données du formulaire et l'ouverture du PDF, 3 boutons:
    imprimer - reset - enregistrer.

    j'aimerais savoir comment je pourrais enregistrer le PDF via le bouton enregistrer vers ma table 'offre' et dans la ligne correspondante au numéro de l'offre évidement.
    le PDF créé doit également porter le même nom que le champ 'numero' de ma table 'offre'.

    voici ma page et mon script
    page1.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <form action="script/formulaire_Script_Offres_jung.php" method="post">
     
      <label>numéro de l'offre:</label>
       <input type="text" name="numero" value="<?php include 'script/numero_offre_Script_jung.php'; ?>"><br>
     
        <label>date de l'offre (ajd):</label>
       <input type="text" name="date_offre" value="<?php $today= date('Y-m-d'); echo $today;?>"><br>
     
        <label>nom du client:</label>
        <input type="text" name="nom_client" value="<?php include 'script/nom_client_Script_jung.php'?>"><br>
     
        <input type="submit" name="submit" value="Créer">
     
    </form>
    script.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    <?php
     
    include '../bdd_jung.php';
    include "../Validation/vendor/autoload.php";
    use Respect\Validation\Validator as v;
     
     
     
     
    if(isset($_POST)) {
     
      $objet = new stdClass();
     
        $objet->numero= $_POST["numero"];
        $objet->date_offre=$_POST["date_offre"];
        $objet->nom_client = $_POST["nom_client"];
     
     
        $valid = v::attribute('nom_client', v::alpha()->notEmpty()->setName('Nom'))
            ->attribute('numero', v::alnum()->notEmpty()->setName('numero'))
            ->attribute('date_offre', v::date()->notEmpty()->setName('date'));
        //var_dump($objet,$valid);
        try {
     
        $valid->assert($objet);
     
        $st = $bdd->prepare("INSERT INTO _1offre_de_prix (numero,date_offre,nom_client) VALUES(?,?,?)");
        $st->execute(array($objet->numero, $objet->date_offre, $objet->nom_client));
     
            $stmt=$bdd->prepare("SELECT numero FROM _1offre_de_prix");
            $stmt->execute();
     
     
            require ('../tcpdf/tcpdf.php');
            while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
     
     
     
            $pdf=new TCPDF(PDF_PAGE_ORIENTATION,PDF_UNIT,PDF_PAGE_FORMAT, true,'UTF-8',false);
            //doc info
            $pdf->SetCreator(PDF_CREATOR);
            $pdf->SetAuthor('Jung Distribution');
            $pdf->SetTitle('Jung Distribution');
            $pdf->SetSubject('Offre de prix Jung Distribution');
            $pdf->SetKeywords('TCPDF');
     
            //header par defaut
            $pdf->SetHeaderData(PDF_HEADER_LOGO,PDF_HEADER_LOGO_WIDTH,PDF_HEADER_TITLE.' sprl',PDF_HEADER_STRING);
            //header et footer font
            $pdf->SetHeaderFont(Array(PDF_FONT_NAME_MAIN,'',PDF_FONT_SIZE_MAIN));
            $pdf->SetFooterFont(Array(PDF_FONT_NAME_DATA,'',PDF_FONT_SIZE_DATA));
            //monospace font
            $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
            //margin
            $pdf->SetMargins(PDF_MARGIN_LEFT,PDF_MARGIN_TOP,PDF_MARGIN_RIGHT);
            $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
            $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
            //auto page break
            $pdf->SetAutoPageBreak(TRUE,PDF_MARGIN_BOTTOM);
            //image scale factor
            $pdf->SetImageScale(PDF_IMAGE_SCALE_RATIO);
     
            //effacer le font
            $pdf->SetFontSubsetting(false);
            //font
            $pdf->SetFont('helvetica','',10,'',false);
            //ajout de la page
            $pdf->AddPage();
     
            //propriété par defaut
            $pdf->SetFormDefaultProp(array('lineWidth'=>1,'borderStyle'=>'solid','fillColor'=>array(255,255,200),'strokeColor'=>array(255,128,128)));
            $pdf->SetFont('helvetica','BI',18);
            $pdf->Cell(0,5,'Offre de prix',0,1,'C');
            $pdf->Ln(10);
            $pdf->SetFont('helvetica','',12);
     
            //first name
            $pdf->Cell(35,5,'Numero de l\'offre:'.$row[0]);
            $pdf->TextField('numero',50,5);}
            $pdf->Ln(6);
     
     
            //bouton validation et imprimer
            $pdf->Button('print',30,10,'Imprimer','Print()',array('lineWidth'=>2,'borderStyle'=>'beveled','fillColor'=>array(128,196,255),'strokeColor'=>array(64,64,64)));
            //bouton reset
            $pdf->Button('reset',30,10,'Reset',array('S'=>'ResetForm'), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
            //boutton envoyer
            $pdf->Button('submit', 30, 10, 'Enregistrer', array('S'=>'SubmitForm', 'Flags'=>array('ExportFormat')), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
            //fermeture et ouverture du fichier.pdf
            ob_get_clean();
            $pdf->Output();
     }
        catch (\InvalidArgumentException $e) {
     
            $objet->error = $e->findMessages([
                'notEmpty' => '{{name}} veuillez remplir ce champ',
                'alpha' => '{{name}} ne peut contenir que des lettres',
                'alnum' => '{{name}} Que des chiffres et des lettres',
                'date' => '{{name}} veuillez choisir une autre date',
            ]);
     
            $_SESSION['error'] = $objet->error;
            $_SESSION['data'] = $_POST;
            header('location:../index_jung.php');
     
        }
     
     
     
    }
    la partie qui m'intéresse est-celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pdf->Button('submit', 30, 10, 'Enregistrer', array('S'=>'SubmitForm', 'Flags'=>array('ExportFormat')), array('lineWidth'=>2, 'borderStyle'=>'beveled', 'fillColor'=>array(128, 196, 255), 'strokeColor'=>array(64, 64, 64)));
    Le script précédent est à titre informatif pour vous aidez à m'aider ^^
    Je ne demande pas un script tout fait, juste de l'aide, des liens, des tutos, une fonction....comme cela je peux également chercher et m'instruire ^^

    Merci à vous pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quel est l'interêt du PDF par rapport à un formulaire HTML pour ce que tu fais ? Pourquoi tu ne demandes pas les informations dans ton premier formulaire au lieu d'envoyer un pdf a remplir ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    tout simplement par ce que ca doit être un document modifiable/imprimable/ comme un bon de commande si tu préfères, et ca doit passer en pdf

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    modifiable -> les données peuvent être modifiée via le formulaire HTTP
    imprimable -> le PDF peut être généré à volonté avec les données inscrites dans la base de donnée

    En tout cas je ne vois pas comment ton PDF pourrait s'auto-envoyer vers ton serveur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    ==>oui mais il faut garder une trace de ce pdf.
    ==>Il ne faut pas que ce pdf s'enregistre dans un pc, car si l'utilisateur se connecte via son gsm, il ne pourra pas retrouver ce document.
    ==>il faudra ensuite que l'utilisateur en tapant le nom du document dans une recherche, que le document s'affiche.

    ==>c'est pour cela que j'aimerais savoir comment je peux faire pour garder une trace dans la bdd du document finalisé?pour pouvoir l'ouvrir + tard, même dans 10 ans, en sachant que le document n'est pas enregistré dans un pc!!!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si dans 10 ans tu reprends les données dans la base de données et que tu regeneres le pdf, il sera identique.
    Mais tu peux faire les deux : enregistrer les données dans la base, permettre de les modifier dans un formulaire HTML et enregistrer le pdf que tu generes sur le serveur. Tout ça ne demande pas d'envoyer un formulaire PDF au client.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    ok mais le pdf doit être différent pour chaque client cela ne change rien avec la génération du pdf?

    je t'avoue qu'on m'en a parlé de la régénération du pdf mais je n'y comprend pas grand chose, peux-tu me donner un exemple stp?
    et s'il y a un tuto ou autre pour savoir comment s'y prendre je suis preneuse :p

  8. #8
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    ah oui ok je viens de comprendre en fouillant un peu google...

    ==>quand tu parles sur le serveur, par exemple FileZilla, qui "transfert" les fichiers de mon site vers l'hébergement de mon site, c'est là que les PDF (dans un dossier) qu'ils devront s'enregistrer et évidement faire un .htacces... ?

    j'ai bien compris ce que tu disais? ==>si oui, soucis, pour l'instant je suis sous wamp, je dois donc simplement créer un dossier alors style upload, dire que les pdf s'y enregistre (pour le moment) et ensuite insérer le chemin dans la bdd...?

    ==>Pour le nom du pdf, y a t'il possiblité que lors de la demande d'enregistrement, à la place que ca mette automatique doc.pdf, de proposer par exemple : 20150318_1.pdf ou autre chose?
    sachant qu'il y a 4 membres et que le nom du fichier doit changer à chaque fois que la personne veut enregistrer un pdf et de +, je vais surement dire une bêtise mais s'auto incrémenter...
    exemple 20150318_1.pdf puis le prochain sera 20150318_2.pdf etc....

    et autre chose aussi, le chemin vers ce pdf, devra correspondre a l'id du client.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme tu me parles de repertoire "upload" je ne suis pas sur que tu aies bien appréhendé le truc.
    Les pdf ne sont pas uploadé : ils sont générés et stockés sur ton serveur mais jamais uploadés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    et comment les stock-t'on sur le serveur stp?

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    ok, j'avais été voir entre temps sur google...et c'est pareil(+-) que ton lien...

    donc voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ob_get_clean();
            $pdf->Output('offre.pdf', "F");
    voici ce que ca me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    ( ! ) Warning: fopen(): remote host file access not supported, file://offre.pdf in C:\wamp\www\Jung-Distribution\tcpdf\include\tcpdf_static.php on line 2440
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0032	161488	{main}( )	..\formulaire_Script_Offres_jung.php:0
    2	0.8814	8717888	TCPDF->Output( )	..\formulaire_Script_Offres_jung.php:96
    3	0.9254	8571696	TCPDF_STATIC::fopenLocal( )	..\tcpdf.php:7673
    4	0.9254	8571792	fopen ( )	..\tcpdf_static.php:2440
     
    ( ! ) Warning: fopen(file://offre.pdf): failed to open stream: no suitable wrapper could be found in C:\wamp\www\Jung-Distribution\tcpdf\include\tcpdf_static.php on line 2440
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0032	161488	{main}( )	..\formulaire_Script_Offres_jung.php:0
    2	0.8814	8717888	TCPDF->Output( )	..\formulaire_Script_Offres_jung.php:96
    3	0.9254	8571696	TCPDF_STATIC::fopenLocal( )	..\tcpdf.php:7673
    4	0.9254	8571792	fopen ( )	..\tcpdf_static.php:2440
    TCPDF ERROR: Unable to create output file: offre.pdf
    voici les scripts (que j'ai du mal à comprendre):
    tcpdf_static.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static function fopenLocal($filename, $mode) {
    		if (strpos($filename, '://') === false) {
    			$filename = 'file://'.$filename;
    		} elseif (strpos($filename, 'file://') !== 0) {
    			return false;
    		}
    		return fopen($filename, $mode);
    	}
    tcpdf.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    public function Output($name='', $dest='I') {
    		//Output PDF to some destination
    		//Finish document if necessary
    		if ($this->state < 3) {
    			$this->Close();
    		}
    		//Normalize parameters
    		if (is_bool($dest)) {
    			$dest = $dest ? 'D' : 'F';
    		}
    		$dest = strtoupper($dest);
    		if ($dest[0] != 'F') {
    			$name = preg_replace('/[\s]+/', '_', $name);
    			$name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);
    		}
    		if ($this->sign) {
    			// *** apply digital signature to the document ***
    			// get the document content
    			$pdfdoc = $this->getBuffer();
    			// remove last newline
    			$pdfdoc = substr($pdfdoc, 0, -1);
    			// remove filler space
    			$byterange_string_len = strlen(TCPDF_STATIC::$byterange_string);
    			// define the ByteRange
    			$byte_range = array();
    			$byte_range[0] = 0;
    			$byte_range[1] = strpos($pdfdoc, TCPDF_STATIC::$byterange_string) + $byterange_string_len + 10;
    			$byte_range[2] = $byte_range[1] + $this->signature_max_length + 2;
    			$byte_range[3] = strlen($pdfdoc) - $byte_range[2];
    			$pdfdoc = substr($pdfdoc, 0, $byte_range[1]).substr($pdfdoc, $byte_range[2]);
    			// replace the ByteRange
    			$byterange = sprintf('/ByteRange[0 %u %u %u]', $byte_range[1], $byte_range[2], $byte_range[3]);
    			$byterange .= str_repeat(' ', ($byterange_string_len - strlen($byterange)));
    			$pdfdoc = str_replace(TCPDF_STATIC::$byterange_string, $byterange, $pdfdoc);
    			// write the document to a temporary folder
    			$tempdoc = TCPDF_STATIC::getObjFilename('doc', $this->file_id);
    			$f = TCPDF_STATIC::fopenLocal($tempdoc, 'wb');
    			if (!$f) {
    				$this->Error('Unable to create temporary file: '.$tempdoc);
    			}
    			$pdfdoc_length = strlen($pdfdoc);
    			fwrite($f, $pdfdoc, $pdfdoc_length);
    			fclose($f);
    			// get digital signature via openssl library
    			$tempsign = TCPDF_STATIC::getObjFilename('sig', $this->file_id);
    			if (empty($this->signature_data['extracerts'])) {
    				openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED);
    			} else {
    				openssl_pkcs7_sign($tempdoc, $tempsign, $this->signature_data['signcert'], array($this->signature_data['privkey'], $this->signature_data['password']), array(), PKCS7_BINARY | PKCS7_DETACHED, $this->signature_data['extracerts']);
    			}
    			// read signature
    			$signature = file_get_contents($tempsign);
    			// extract signature
    			$signature = substr($signature, $pdfdoc_length);
    			$signature = substr($signature, (strpos($signature, "%%EOF\n\n------") + 13));
    			$tmparr = explode("\n\n", $signature);
    			$signature = $tmparr[1];
    			// decode signature
    			$signature = base64_decode(trim($signature));
    			// add TSA timestamp to signature
    			$signature = $this->applyTSA($signature);
    			// convert signature to hex
    			$signature = current(unpack('H*', $signature));
    			$signature = str_pad($signature, $this->signature_max_length, '0');
    			// Add signature to the document
    			$this->buffer = substr($pdfdoc, 0, $byte_range[1]).'<'.$signature.'>'.substr($pdfdoc, $byte_range[1]);
    			$this->bufferlen = strlen($this->buffer);
    		}
    		switch($dest) {
    			case 'I': {
    				// Send PDF to the standard output
    				if (ob_get_contents()) {
    					$this->Error('Some data has already been output, can\'t send PDF file');
    				}
    				if (php_sapi_name() != 'cli') {
    					// send output to a browser
    					header('Content-Type: application/pdf');
    					if (headers_sent()) {
    						$this->Error('Some data has already been output to browser, can\'t send PDF file');
    					}
    					header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1');
    					//header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
    					header('Pragma: public');
    					header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    					header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    					header('Content-Disposition: inline; filename="'.basename($name).'"');
    					TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen);
    				} else {
    					echo $this->getBuffer();
    				}
    				break;
    			}
    			case 'D': {
    				// download PDF as file
    				if (ob_get_contents()) {
    					$this->Error('Some data has already been output, can\'t send PDF file');
    				}
    				header('Content-Description: File Transfer');
    				if (headers_sent()) {
    					$this->Error('Some data has already been output to browser, can\'t send PDF file');
    				}
    				header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1');
    				//header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
    				header('Pragma: public');
    				header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    				header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    				// force download dialog
    				if (strpos(php_sapi_name(), 'cgi') === false) {
    					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);
    				} else {
    					header('Content-Type: application/pdf');
    				}
    				// use the Content-Disposition header to supply a recommended filename
    				header('Content-Disposition: attachment; filename="'.basename($name).'"');
    				header('Content-Transfer-Encoding: binary');
    				TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen);
    				break;
    			}
    			case 'F':
    			case 'FI':
    			case 'FD': {
    				// save PDF to a local file
    				$f = TCPDF_STATIC::fopenLocal($name, 'wb');
    				if (!$f) {
    					$this->Error('Unable to create output file: '.$name);
    				}
    				fwrite($f, $this->getBuffer(), $this->bufferlen);
    				fclose($f);
    				if ($dest == 'FI') {
    					// send headers to browser
    					header('Content-Type: application/pdf');
    					header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1');
    					//header('Cache-Control: public, must-revalidate, max-age=0'); // HTTP/1.1
    					header('Pragma: public');
    					header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    					header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    					header('Content-Disposition: inline; filename="'.basename($name).'"');
    					TCPDF_STATIC::sendOutputData(file_get_contents($name), filesize($name));
    				} elseif ($dest == 'FD') {
    					// send headers to browser
    					if (ob_get_contents()) {
    						$this->Error('Some data has already been output, can\'t send PDF file');
    					}
    					header('Content-Description: File Transfer');
    					if (headers_sent()) {
    						$this->Error('Some data has already been output to browser, can\'t send PDF file');
    					}
    					header('Cache-Control: private, must-revalidate, post-check=0, pre-check=0, max-age=1');
    					header('Pragma: public');
    					header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    					header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
    					// force download dialog
    					if (strpos(php_sapi_name(), 'cgi') === false) {
    						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);
    					} else {
    						header('Content-Type: application/pdf');
    					}
    					// use the Content-Disposition header to supply a recommended filename
    					header('Content-Disposition: attachment; filename="'.basename($name).'"');
    					header('Content-Transfer-Encoding: binary');
    					TCPDF_STATIC::sendOutputData(file_get_contents($name), filesize($name));
    				}
    				break;
    			}
    			case 'E': {
    				// return PDF as base64 mime multi-part email attachment (RFC 2045)
    				$retval = 'Content-Type: application/pdf;'."\r\n";
    				$retval .= ' name="'.$name.'"'."\r\n";
    				$retval .= 'Content-Transfer-Encoding: base64'."\r\n";
    				$retval .= 'Content-Disposition: attachment;'."\r\n";
    				$retval .= ' filename="'.$name.'"'."\r\n\r\n";
    				$retval .= chunk_split(base64_encode($this->getBuffer()), 76, "\r\n");
    				return $retval;
    			}
    			case 'S': {
    				// returns PDF as a string
    				return $this->getBuffer();
    			}
    			default: {
    				$this->Error('Incorrect output destination: '.$dest);
    			}
    		}
    		return '';
    	}
    ligne correspondante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case 'FD':{
    //ligne 7673
    $f = TCPDF_STATIC::fopenLocal($name, 'wb');

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Output($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'offre.pdf', 'F');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ai une page blanche et rien d'autre

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu voulais avoir quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ai trouvé
    avec une petite recherche ^^

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $pdf->Output($_SERVER['DOCUMENT_ROOT'].'/'.'Jung-Distribution'.'/'.'offre_pdf/offre.pdf', 'F');
     
     
        if (isset($_POST)) {
             header('Refresh: 3; URL=../doc.php?page=Offres_de_prix');
            echo 'fichier enregistré';
            }
    l'enregistrement se fait, je l'indique + rafraîchissement et hop le tour est joué ^^

    merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Visionneuse fichier PDF (formulaire continu)
    Par audloi dans le forum Access
    Réponses: 0
    Dernier message: 30/09/2014, 13h45
  2. Réponses: 0
    Dernier message: 14/05/2014, 14h48
  3. Javascript pour PDF formulaire case obligatoire
    Par nekosan3 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/06/2011, 10h55
  4. abérration formulaire submit()
    Par taffMan dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/05/2007, 17h04
  5. Formulaire + submit=tâche ant
    Par zent dans le forum ANT
    Réponses: 2
    Dernier message: 25/01/2007, 00h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo