Menu

Modifier fichiers xml 2003 avec extension .doc via formulaire [Résolu]

Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 2 oct. 2017 à 20:22 - Dernière réponse : Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention
- 4 oct. 2017 à 20:47
Bonjour,

Je souhaite modifier le contenu de fichiers xml 2003 avec extension .doc via formulaire,
je ne comprends pas d'habitude cela fonctionne toujours et là cela me génère des documents vierges.

Pourriez-vous m'aider svp ?

Merci d'avance.

Voici le code de ma page du formulaire :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<?php
header('Content-type: text/html; charset=utf-8');
include('includes/fonctions.php');
connexionbdd();

global $current_user;
      get_currentuserinfo();

?>
<form id="annexe" name="annexe" method="post" action="exporter.php" onclick="">
		  <input type="hidden" name="datej" id="datej" value="<?php echo date("d-m-Y"); ?>" />
		  <input type="hidden" name="consultant" id="consultant" value="<?php echo $current_user->display_name; ?>" />
		  <p>Type d'impulsion ? <br /><br />
		    <input type="radio" name="type" value="12" /> 12 mois + <br />
			<input type="radio" name="type" value="25" /> - de 25 ans <br />
          </p>
		  <br
          <p>Première date de retenue :   
            <input type="text" name="dateret" id="dateret" size="10" />
          </p>
          <p>Numéro de registre national :   
            <input type="text" name="nreg" id="nreg" size="15" placeholder="xx.xx.xx-xxx.xx" />
          </p>
          <p>Nom :   
            <input type="text" name="nom" id="nom" size="15" />
			</p>
          <p>Prénom :   
            <input type="text" name="prenom" id="prenom" size="15" />
          </p>
          <p>Rue :   
            <input type="text" name="rue" id="rue" size="50" />
			</p>
          <p>N° :   
            <input type="text" name="num" id="num" size="5" />
			Boîte :   
            <input type="text" name="boite" id="boite" size="5" />
          </p>
		  <p>Code postal :   
            <input type="text" name="cp" id="cp" size="4" />
			Commune :   
            <input type="text" name="commune" id="commune" />
          </p>
		  <p>Numéro de téléphone :   
            <input type="text" name="tel" id="tel" placeholder="xxxx/xx.xx.xx" />
			</p>
          <p>Adresse mail :   
            <input type="text" name="mail" id="mail" />
          </p>
		  <p>Q / S :   
            <input type="text" name="q" id="q" size="2" /> / <input type="text" name="s" id="s" size="2" />
          </p>
		  <p>Compensations payées ? <br /><br />
		    <input type="radio" name="payees" value="oui" /> Oui <br />
			<input type="radio" name="payees" value="non" /> Non <br />
          </p>
			
       <input align="right" name="export" type="submit" id="export" value="exporter" />    </form>
<br><br>



Voici le code de ma page d'execution :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/fonctions.php');
connexionbdd();

global $current_user;
      get_currentuserinfo();

$type=$_POST['type'];
$dateret=$_POST['dateret'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$nomcomplet=$nom.' '.$prenom;
$nreg=$_POST['nreg'];
$rue=$_POST['rue'];
$num=$_POST['num'];
$boite=$_POST['boite'];
$cp=$_POST['cp'];
$commune=$_POST['commune'];
$adresse1=$rue.' '.$num.','.$boite;
$adresse2=$cp.' '.$commune;
$tel=$_POST['tel'];
$mail=$_POST['mail'];
$q=$_POST['q'];
$s=$_POST['s'];
$datej=$_POST['datej'];
$consultant=$_POST['consultant'];
$payees=$_POST['payees'];
if ($q > $s)
{
if ($payees == 'oui')
{
$qs = $q.' / '.$q;
}
elseif ($payees == 'non')
{
$qs = $s.' / '.$s;
}
}
else
{
$qs = $q.' / '.$s;
}
//Nom du futur fichier.
    $nom_fichier1 = 'annexe_impulsion.doc';
	$nom_fichier2 = 'C109.doc';

	$myContent = str_replace("@DATERET@",$dateret,$myContent);
    $myContent = str_replace("@NOMCOMPLET@",$nomcomplet,$myContent);
	$myContent = str_replace("@NREG@",$nreg,$myContent);
	$myContent = str_replace("@ADRESSE1@",$adresse1,$myContent);
	$myContent = str_replace("@ADRESSE2@",$adresse2,$myContent);
	$myContent = str_replace("@TEL@",$tel,$myContent);
	$myContent = str_replace("@MAIL@",$mail,$myContent);
	$myContent = str_replace("@QS@",$qs,$myContent);
	$myContent = str_replace("@DATEJ@",$datej,$myContent);
	$myContent = str_replace("@CONSULTANT@",$consultant,$myContent);

if ($type == 12)
{
	$nom_fichier0 = 'lettre_d_info_12_mois_plus.doc';
	$newFile0 = file_get_contents("template_lettre_d_info_12_mois_plus.doc");
	fopen("$nom_fichier0", "a");
    fwrite($newFile0,$myContent);
    fclose($newFile0);
}
elseif ($type == 25)
{
	$nom_fichier0 = 'lettre_d_info_moins_de_25_ans.doc';
	$newFile0 = file_get_contents("template_lettre_d_info_moins_de_25_ans.doc");
	fopen("$nom_fichier0", "a");
    fwrite($newFile0,$myContent);
    fclose($newFile0);
}	

$newFile1 = file_get_contents("template_annexe.doc");
	fopen("$nom_fichier1", "a");
    fwrite($newFile1,$myContent);
    fclose($newFile1);
	
$newFile2 = file_get_contents("template_c109.doc");
	fopen("$nom_fichier2", "a");
    fwrite($newFile2,$myContent);
    fclose($newFile2);
  
?>
<br><br>
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 2 oct. 2017 à 22:27
1
Merci
Bonjour

Quelques erreurs....

Relis bien la doc !
http://php.net/manual/fr/function.fwrite.php

http://php.net/manual/fr/function.file-get-contents.php


Tu n'utilises pas correctement le filewrite... du moins pas avec les bons paramètres. ..

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 24187 internautes ce mois-ci

Commenter la réponse de jordane45
yg_be 5820 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 22 juin 2018 Dernière intervention - 2 oct. 2017 à 21:30
0
Merci
bonsoir, qu'as-tu changé?
d'après toi, que contient $myContent avant la ligne 52?
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 2 oct. 2017 à 23:25
Bonsoir,

je n'ai rien changé à ma façon de faire d'habite.

$myContent contient le faite que certains mots comme @DATERET@ doivent être échangé par la variable adéquate.

Bien à toi.
Commenter la réponse de yg_be
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 3 oct. 2017 à 23:24
0
Merci
J'ai relus et j'ai essayé avec le parametre "w" aulieu de "a".

Mais cela n'a donné aucun résultat.

Merci d'avance pour votre aide.
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 3 oct. 2017 à 23:25
Le problème se situe dans le "fichier" que tu passes en parametre... pas le "a" ....
Commenter la réponse de Tzmagnum
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 4 oct. 2017 à 00:25
0
Merci
Bonjour,

Je suis assez désorienté, je les ai toujours passés ainsi et j'ai jamais eu de problème.

Peux-tu m'aiguiller plus stp ?

Merci d'avance.
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 4 oct. 2017 à 07:42
C'est bien pour ca que je t'ai siy de relir la doc.
File_get_content... ca retourne quoi ?
Et tes fopen... tu ne les mets pas dans une variable ?
Commenter la réponse de Tzmagnum
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 4 oct. 2017 à 17:48
0
Merci
Bonjour,

File_get_content est le fichier template sur lequel je veux que le code se base pour générer mon fichier final.

Bien à toi.
jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 4 oct. 2017 à 18:19
Oui..et ???
Fwrite (file handler, content)

File handler = resultat du fopen .... et non du file_get_content
Commenter la réponse de Tzmagnum
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 4 oct. 2017 à 19:40
0
Merci
J'ai réussi

Il n'y a que @ADRESSE@ et @SUITE@ qui ne se remplace pas.

Je ne sais pas pourquoi.

Pourtant quand je fais echo sur les variables $adresse et $suite sa s'affiche bien

Voici le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/fonctions.php');
connexionbdd();

global $current_user;
      get_currentuserinfo();

$type=$_POST['type'];
$dateret=$_POST['dateret'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$nomcomplet=$nom.' '.$prenom;
$nreg=$_POST['nreg'];
$rue=$_POST['rue'];
$num=$_POST['num'];
$boite=$_POST['boite'];
$cp=$_POST['cp'];
$commune=$_POST['commune'];
$adresse=$rue.' '.$num.', '.$boite;
$suite=$cp.' '.$commune;
$tel=$_POST['tel'];
$mail=$_POST['mail'];
$q=$_POST['q'];
$s=$_POST['s'];
$datej=$_POST['datej'];
$datej_c109=$_POST['datej'];
$consultant=$_POST['consultant'];
$payees=$_POST['payees'];
if ($q > $s)
{
if ($payees == 'oui')
{
$qs = $q.'/'.$q;
}
elseif ($payees == 'non')
{
$qs = $s.'/'.$s;
}
}
else
{
$qs = $q.'/'.$s;
}
//Nom du futur fichier.
    $nom_fichier1 = 'impulsions/'.$nomcomplet.' - annexe_impulsion.doc';
	$nom_fichier2 = 'impulsions/'.$nomcomplet.' - C109.doc';


if ($type == 12)
{
	$nom_fichier0 = 'impulsions/'.$nomcomplet.' - lettre_d_info_12_mois_plus.doc';
	$myContent = file_get_contents("template_lettre_d_info_12_mois_plus.doc");
	$newFile0 = fopen("$nom_fichier0", "w");
    fwrite($newFile0,$myContent);
    fclose($newFile0);
	$type_impulsion = '12 mois +';
}
elseif ($type == 25)
{
	$nom_fichier0 = 'impulsions/'.$nomcomplet.' - lettre_d_info_moins_de_25_ans.doc';
	$myContent = file_get_contents("template_lettre_d_info_moins_de_25_ans.doc");
	$newFile0 = fopen("$nom_fichier0", "w");
    fwrite($newFile0,$myContent);
    fclose($newFile0);
	$type_impulsion = '- 25 ans';
}	

	$myContent_annexe = file_get_contents("template_annexe.doc");
	$newFile1 = fopen("$nom_fichier1", "w");
	$myContent_annexe = str_replace("@DATERET@",$dateret,$myContent_annexe);
    $myContent_annexe = str_replace("@NOMCOMPLET@",$nomcomplet,$myContent_annexe);
	$myContent_annexe = str_replace("@NREG@",$nreg,$myContent_annexe);
	$myContent_annexe = str_replace("@QS@",$qs,$myContent_annexe);
	$myContent_annexe = str_replace("@DATEJ@",$datej,$myContent_annexe);
	$myContent_annexe = str_replace("@CONSULTANT@",$consultant,$myContent_annexe);
    fwrite($newFile1,$myContent_annexe);
    fclose($newFile1);
	
	$myContent_c109 = file_get_contents("template_c109.doc");
	$newFile2 = fopen("$nom_fichier2", "w");
	$myContent_c109 = str_replace("@DATERET@",$dateret,$myContent_c109);
    $myContent_c109 = str_replace("@NOMCOMPLET@",$nomcomplet,$myContent_c109);
	$myContent_c109 = str_replace("@NREG@",$nreg,$myContent_c109);
	$myContent_c109 = str_replace("@ADRESSE@",$adresse,$myContent_c109);
	$myContent_c109 = str_replace("@SUITE@",$suite,$myContent_c109);
	$myContent_c109 = str_replace("@TEL@",$tel,$myContent_c109);
	$myContent_c109 = str_replace("@MAIL@",$mail,$myContent_c109);
	$myContent_c109 = str_replace("@DATEJ_C109@",$datej_c109,$myContent_c109);
	$myContent_c109 = str_replace("@CONSULTANT@",$consultant,$myContent_c109);
    fwrite($newFile2,$myContent_c109);
    fclose($newFile2);
	
echo $adresse;
echo '<br>';
echo $suite;
echo '<br>';
?>
<center>L'annexe impulsion <?php echo $type_impulsion; ?> et le C109 de <?php echo $nomcomplet; ?> avec date de première retenue au <?php echo $dateret; ?> et un Q/S de <?php echo $qs; ?> a bien été générée. </center>
<br><br>


jordane45 21438 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 juin 2018 Dernière intervention - 4 oct. 2017 à 20:36
Déjà. ..... de rien.

Ensuite il s'agit d'un "nouveau" problème.
Tu dois donc clore cette discussion et en ouvrir une autre pour cet autre souci.
Merci.
Tzmagnum 66 Messages postés dimanche 9 août 2009Date d'inscription 16 décembre 2017 Dernière intervention - 4 oct. 2017 à 20:47
d'accord merci
Commenter la réponse de Tzmagnum