PUBLIPOSTAGE DOCUMENTS WORDS(AU FORMAT RTF) A PARTIR D'UNE BASE MYSQL

cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008 - 15 janv. 2008 à 04:57
coolchti Messages postés 5 Date d'inscription mardi 2 novembre 2010 Statut Membre Dernière intervention 5 novembre 2010 - 5 nov. 2010 à 08:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45428-publipostage-documents-words-au-format-rtf-a-partir-d-une-base-mysql

coolchti Messages postés 5 Date d'inscription mardi 2 novembre 2010 Statut Membre Dernière intervention 5 novembre 2010
5 nov. 2010 à 08:22
Bonjour,

J'ai a peut pret exactement le meme soucis que Thiefou, une piste ? Moi, c'est le serveur Apache qui plante
cs_thiefou Messages postés 1 Date d'inscription jeudi 29 décembre 2005 Statut Membre Dernière intervention 29 juillet 2009
29 juil. 2009 à 18:02
Hello Foxmaster,
Je recherche une solution similaire à ton développement que je trouve super bon voir excellent, j'ai cependant encore trés peux d'expérience,(je travail plutôt en dotnet VB ou Delphi) je commence hélas seulement maintenant avec PHP et WAMP Mais mes début sont plutôt positifs.
j'ai donc chargé tes sources et j'utilise wamp v 2.2.11 mais je rencontre quelques soucis.
j'ai bien recréé les tables pour les users et pour les documents
je parviens a me connecter sur la base, car j'ai modifié en dur les paramètre de connexion avec le fichier _connect.php
cependant j'ai ensuite une erreur sur la page après un certain temps.

pourais tu me donner un tuyeau pour rechercher l'origine de mon problème?
un grand merci pour ton aide
thierry.francis@gmail.com




en et la table document
gigamaster Messages postés 13 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 15 juin 2009
15 juin 2009 à 21:09
Utile et pratique.
^_^
Isarien59 Messages postés 5 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 23 juillet 2008
23 juil. 2008 à 15:51
Oui d'après ce que j'ai lu la taille des variable ds php est limitée à 8 mo. Après faut modifier le php.ini.

Pour l'entête et les pieds de page ca donne le même résultat avec ton code (jai uploadé un fichier sur ton site de test) et le miens (ds un sens ca me rassure). je vais voir pour trouver une autre solution (utilisation de tableau...)
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
23 juil. 2008 à 15:32
Fais comme tu veux :-P

pour les entetes et pieds de pages je sais pas trop j'ai plus ou moins le probleme
mais je l'ai résolu assez simplement...(on a des papiers d'entête :-D)

par contre, j'ai remarqué que si on générais beaucoup de document et qu'il y a des images dedans (les images allourdissent énormément un RTF... car l'image est transformé en code qui est assez conséquent celon l'image)
cela peut planter l'application disant que le fichier est trop volumineux par rapport à la taille maxi que le serveur apache gere
Isarien59 Messages postés 5 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 23 juillet 2008
23 juil. 2008 à 14:59
oui effectivement ca marche mieux comme ca en fait en analysant les fichier générés par ton site de démo, il semblerait que ce soit ca la syntaxe utilisée '{\par \page}' pour les changements de pages et '{\rtf1' pour le début du fichier et '}' pour la fin. Par contre j'arrive pas a garder la même mise en page que le fichier d'origine (les en têtes et pieds de pages sont tout simplement zappés à l'affichage ds word). C'est du au fait que j'ai plusieurs header de fichier rtf ds mon fichier rtf généré (puisque je concatène les fiche issues du modèle dans le fichier initial.) Peut être qu'il faudrait que je créé un topic ds le forum pour mon sujet ca polluerai pas les commentaire de ce script

Pour le lien de DDEMPT c'est : http://www.phpcs.com/codes/PUBLIPOSTAGE-ZIP-MEL_46614.aspx
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
23 juil. 2008 à 14:36
Autant pour moi.

Lien vers une autre application de publipostage : http://www.phpcs.com/codes/PUBLIPOSTAGE-ZIP-MEL_46614.aspx
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
23 juil. 2008 à 12:57
DDEMPT
ton lien n'est pas bon
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
23 juil. 2008 à 12:56
Bonjour ISARIEN59,
ton document doit etre créé de la sorte:
commencer par


{\\rtf1

#boucle(plusieurs)

le contenu de ton document
\page \par
le contenu de ton document
\page \par
le contenu de ton document
\page \par
le contenu de ton document

}
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
23 juil. 2008 à 10:00
Bonjour,

J'ai eu le même soucis et c'est pourquoi j'ai fais cela : http://www.phpcs.com/ajoutcode.aspx?step=1&ID=46614
Si cela peut d'aider.
Isarien59 Messages postés 5 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 23 juillet 2008
23 juil. 2008 à 09:31
bonjour et merci pour le script.

je m'en suis largement inspiré pour celui que j'ai créé mais je tombe sur un problème : je n'arrive pas à créer plusieurs pages (même en utilisant " \page \par ") Ce que je souhaite faire, c'est créer un fichier contenant 10 fois la même lettre (créé a partir d'un modèle avec des balises perso) pour 10 destinataires différents. Les données sont bien enregistrées dans le fichier mais quand je l'ouvre avec word, je ne vois que la première page.
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 22:34
OK, Merci bien
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 22:30
oui c'est normal tu n'a pas mis les # quand tu a s uploadé le document et mis les mot cl" alors que tu as mis des mots clés avec des #

d'ailleur pour info je conseille de mettre finalement des mots clés sans les # car des fois avec les # ça foire
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 22:12
J'ai fait le test avec le document en publipostage "mise en page". Celui en télécharger est une erreur.

Si tu effectue le téléchargement. tu obtiendras une erreur. Il affiche les # mais a remplacé les mots clés.

Alors, qu'en dis-tu?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 22:03
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 22:00
Quel est l'url de ta démo?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 21:55
pour infio jh'ai oublié de mettre a jour..

il faut modifier la ligne 162
if($numpub>0){$texte.=" \page ".$output;}else{$texte.=$output;}
par
if($numpub>0){$texte.=" \page \par ".$output;}else{$texte.=$output;}
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 21:53
ma réponse précédente était pour DDEMPT
LuthiLaTonnelle
ah .. quelle version de word utilisez vous?

pouvrriez vous uploader votre document sur ma démo et tester et me dire si cette erreur se produit ? merci
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 21:51
eh ben c ce que cela fait ...
il suffit de choisir plusieurs destinataires et cela sort un seul document avec les differentes fiches (si j'ai bien compris votre requete
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 21:50
Lors de l'ouverture du fichier .rtf générer par l'application. S'affiche une erreur me signalant que le fichier est corrompu.

Est-il possible d'utiliser des documents .rtf dont certains mot clés seraient en gras ou souligné?
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
7 févr. 2008 à 21:48
En faite en faisant un publipostage sur WORD on a un résultat sous forme d'un seul document .DOC
C'est cela que je cherche à faire pour avoir 1 seul document à télécharger, je suis amener à traiter des centaines de fiches et si je dois les télécharger 1 par 1 ça fait long.
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 21:45
quel genre d'erreur?
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 21:37
foxmaster

Merci c'était bien ça j'avais mis les droit d'écriture sur le dossier upload_documents mais pas sur le dossier mère documents.

J'ai suivis ton conseil et j'ai créé un dossier /temp/ avec les droits en écriture. Merci

Une autre question: Je souhaite ajouter une mise en page. Mais quand je modifie un fichier .rtf en y ajoutant des mot clés en gras. J'obtiens des erreurs lors du publipostage.

Qu'en penses-tu?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 20:43
theboubourse

dslé j'ai pas d'idée,
il faut aussi savoir que ce n'est pas un document word "DOC" mais un document RTF.
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 20:42
DDEMPT
"On ne peut pas télécharger l'ensemble des fiches dans 1 seul document, domage"

je ne comprend pas la remarque..? peux tu expliquer

merci.
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
7 févr. 2008 à 20:40
LuthiLaTonnelle bonsoir,

vu l'erreur il semblerais qu'il s'agit d'une erreur de permission.. êtes vous sous linux? un chmod peut etre...

le 'a+' créer un fichier si celui ci n'existe il le créer au meme endroit que la ou se situe le script ce qui est une erreur de ma part...
la solution est donc (et je mettrais le script a jour)

de creer un dossier nommé "temp" (par exemple)

et de modifier la ligne 60 par ceci:
$temp_file = "./temp/$intitule_document - ".date("d-m-Y").".rtf";
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
7 févr. 2008 à 19:10
On ne peut pas télécharger l'ensemble des fiches dans 1 seul document, domage
theboubourse Messages postés 41 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 6 mars 2008
7 févr. 2008 à 17:13
salut FOXMASTER tu as l'air calé avec word moi je recherche le moyen d'avoir dans une variable les mots clés qui se trouvent dans les propriétés d'un document word si vous avez une idée merci d'avance
LuthiLaTonnelle Messages postés 7 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 7 février 2008
7 févr. 2008 à 12:55
Hello, super ce script. mais j'ai une petit erreur que je ne peux résoudre sans votre aide:

Warning: fopen(attestation - 07-02-2008.rtf) [function.fopen]: failed to open stream: Permission denied in /*/documents/make_document.php on line 166

Pouvez-vous m'aider?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
28 janv. 2008 à 00:28
je viens de faire quelques essais, le resultat du document avec multi pages fonctionne correctement avec:
Open office
Word

mais pas avec wordpad de windows :-S
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
27 janv. 2008 à 23:31
voila j'ai mis a jour la source , attention ça reste du "bricolage" mais ça fonctionne bien (testé avec word 2003).

si quelqu'un a l'occasion d'ouvrir un fichier sous linux ou avec un autre logiciel que word pour savoir si cela se lit correctement .. ça serait cool ;-)
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
27 janv. 2008 à 22:18
Ayé j'ai fais les modifications

je mettrais a jour la source dans la foulée.
laissez des commentaires merci et si vous pouviez noter mon travail
(ça me donne l'impression d'etre encore a l'école :-D)
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
25 janv. 2008 à 19:34
Pardon, foxmaster , mais je ne voulais en aucun cas être blessant !
Je compatissais plutôt à l'idée du travail que cela t'entraînat.
Je vais faire plus gaffe à mes remarques dès à présent.
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
25 janv. 2008 à 19:16
sympa la remarque JADU, ça donne presque pas envie de répondre,
j'ai pas eu trop de temps a moi (taff) et le soir pas trop le temps..

bref j'ai trouvé la parade, reste plus qu'a mettre en place, je sais juste pas niveau interface comment mettre ça mais ça va venir prochainement !
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
22 janv. 2008 à 16:07
la soirée du 16 est longue !!!!
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
16 janv. 2008 à 12:29
Justement j'ai essayé de le faire mais j'ai un problème pour joindre plusieurs fichiers, il y a en fait à chaque fichier un entete qu'il ne faut pas répéter dans le document final.

Si tu y arrive fais moi signe
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
16 janv. 2008 à 11:51
tel qu'il a été réalisé, non
mais cela peut etre faisable, j'ajouterais cela dans la soirée.
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
16 janv. 2008 à 08:01
Est-ce que ce code peut générer un seul document de plusieurs fiches ?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
16 janv. 2008 à 01:10
c bon j'ai réctifié
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
16 janv. 2008 à 00:41
Bizarement je viens de voir que les quoite et simple quotes passaient mal sur le rtf sur mon hébergeur.. mais pas sur mon serveur local(wamp)
je n'ai pour l'isntant pas d'idée de parade, j'ai essayé avec un str_replace('"',chr(34),$texte);
mais ça ne marche pas correctement :-(
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
16 janv. 2008 à 00:14
je viens de voir que dans les sources en rapport avec mon code y avais ceci...
http://www.phpcs.com/codes/FORMULAIRE-PHP-INSERTION-AUTOMATIQUE-DANS-DOCUMENT-RTF-WORD_43277.aspx
donc je vais sans doute retirer ma source (sauf si elle vous parait interressante a exploiter?
cs_foxmaster Messages postés 38 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 23 septembre 2013
15 janv. 2008 à 23:57
le but est de réaliser un publipostage sur un document rtf créé

dans mon exemple je suis partis sur un systeme de lettres types
j'en ai pour ma part une toute autre utilisation aprés réadaptation

j'ai une grosse banque de donnée sous mysql avec des informations divers et a partir d'un numéro de dossier un utilisateur qui a créé un document type (un lettre pour un assureur par ex) va récupérer la lettre remplie avec les éléments du dossiers aux endroit qu'il aura défini

"Je n'ai pas bien compris non plus (en faisant l'essai de publipostage sur ton site, cela m'a généré des pages vides - j'utilise Open Office).
"
pour les pages vides c que j'avais eu un souci suite a une faute de frappe de ma part sur le code et j'avais mis des document avec uniqument les mot clé qui été en cause par la faute de frappe.. (j'ai corrigé depuis)

"1.Tu devrais utiliser mysql_real_escape_string, parce que sinon on peut passer nimporte quoi dans le $_POST['document_id'] (et surment ailleur). Ou alors document_id est un integer, tu pourrais aussi vérifié si c'est bien un chiffre a la place, avec is_numeric."
pas bien compris la...
"2. Parlant de document id, tu ne semble pas faire de vérification si le document existe bien, je lui passe nimporte quoi et il l'accèpte."
je corrigerais cela..
"3. Tu n'es pas constant dans l'utilisation du quote ou double quote, des fois tu utilises les ' des fois " , tu dervais rester constant et utiliser le simple quote partout, sauf quand t'as besoin d'ajouter une variable dans le string."
je corrigerais aussi :-D j'essaye de faire attention mais j'ai encore des difficultés...
ddempt Messages postés 24 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 4 juin 2008
15 janv. 2008 à 09:17
Ca ne marche pas.

Le but de ce code est de réaliser un publipostage d'un document RTF qu'on a créer ou de générer un RTF ?

Quand j'upload un document, je récupère un autre.
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
15 janv. 2008 à 08:06
Salut,

Je n'ai pas bien compris non plus (en faisant l'essai de publipostage sur ton site, cela m'a généré des pages vides - j'utilise Open Office).

Est-ce que le but c'est d'avoir un "chablon Word" et de lui transmettre des données par le formulaire? Si c'est ça alors c'est vraiement intéressant... ceci dit, j'ai parcouru rapidement le code et je n'ai pas trouvé où tu construisais ton document...
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
15 janv. 2008 à 04:57
Salut,

Quelques petites remarques (qui reviennent souvent, mais il le faut bien ;))

1.Tu devrais utiliser mysql_real_escape_string, parce que sinon on peut passer nimporte quoi dans le $_POST['document_id'] (et surment ailleur). Ou alors document_id est un integer, tu pourrais aussi vérifié si c'est bien un chiffre a la place, avec is_numeric.

2. Parlant de document id, tu ne semble pas faire de vérification si le document existe bien, je lui passe nimporte quoi et il l'accèpte.

3. Tu n'es pas constant dans l'utilisation du quote ou double quote, des fois tu utilises les ' des fois " , tu dervais rester constant et utiliser le simple quote partout, sauf quand t'as besoin d'ajouter une variable dans le string.


Ça m'a l'air interessant, mais, je suis peut être con, j'ai pas tout compris à quoi ça sert ? à gerer des documents/comptes en interne ?

Bonne continuation
Rejoignez-nous