Modifier fichiers xml 2003 avec extension .doc via formulaire

Résolu/Fermé
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022 - 2 oct. 2017 à 20:22
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022 - 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>
A voir également:

6 réponses

jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
2 oct. 2017 à 22:27
Bonjour

Quelques erreurs....

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

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


Tu n'utilises pas correctement le filewrite... du moins pas avec les bons paramètres. ..
1
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 551
2 oct. 2017 à 21:30
bonsoir, qu'as-tu changé?
d'après toi, que contient $myContent avant la ligne 52?
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
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.
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
3 oct. 2017 à 23:24
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.
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
3 oct. 2017 à 23:25
Le problème se situe dans le "fichier" que tu passes en parametre... pas le "a" ....
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
4 oct. 2017 à 00:25
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.
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
Modifié le 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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
4 oct. 2017 à 17:48
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.
0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
4 oct. 2017 à 18:19
Oui..et ???
Fwrite (file handler, content)

File handler = resultat du fopen .... et non du file_get_content
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
4 oct. 2017 à 19:40
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>


0
jordane45 Messages postés 38300 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 novembre 2024 4 704
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.
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
4 oct. 2017 à 20:47
d'accord merci
0