Soyez le premier à donner votre avis sur cette source.
Vue 17 088 fois - Téléchargée 1 124 fois
<?php require('../connexion/_connect.php');//connexion a la base function change_carspec($texte)//fonction qui remplace certains caracteres spéciaux tels que les guillemets dans un forma rtf { $texte= str_replace("'"," \\rquote ",$texte); $texte= str_replace('"'," \\ldblquote ",$texte); $texte= str_replace('{'," \\{ ",$texte); $texte= str_replace('{'," \\} ",$texte); return $texte; } //initialisation des variables $nb_checkbox=count($_POST["checkdest"]);//on compte le nombre de destinataires sélectionnés if($nb_checkbox==0){$nb_checkbox=1;}//si aucun on met le compteur à 1 //variable qui contiendra les pages remplies $texte=""; if($nb_checkbox>1){$texte="{\\rtf1 \n";}//si plusieurs destinataires sélectionnées on met ce code en debut de page. //date $date_jour=date("d/m/Y"); //infos utilisateur $titre_user=""; $nom_user=""; $prenom_user=""; $adresse_user=""; $cp_user=""; $ville_user=""; $tel_user=""; $email_user=""; //mes infos $my_info_titre=""; $my_info_nom=""; $my_info_prenom=""; $my_info_enseigne=""; $my_info_adresse=""; $my_info_cp=""; $my_info_ville=""; $my_info_tel=""; $my_info_fax=""; $my_info_email=""; if(isset($_POST["id_document"]))//si a été choisi un document { $id_document=$_POST["id_document"]; $SQL_document="SELECT * FROM documents WHERE document_id=$id_document"; $rc_document=mysql_query($SQL_document); $row_document=mysql_fetch_array($rc_document); //on récupere les infos du document choisi $type_document=$row_document["document_type"]; $intitule_document=$row_document["document_intitule"]; $nom_document=$row_document["document_nom"]; $nomtemp_document=$row_document["document_tempnom"]; // On ouvre le fichier type uploadé $rep="./upload_documents/"; $filename = "$rep$nomtemp_document"; $temp_file = "$intitule_document - ".date("d-m-Y").".rtf"; $fp = fopen ( $filename, 'r' ); // On le place en variable $output et on le ferme $foutput = fread( $fp, filesize( $filename ) ); fclose ( $fp ); for ($numpub=0; $numpub < $nb_checkbox; $numpub++)//si plusieurs { $output=$foutput; if(isset($_POST["util_info"])) //si les infos du destinataire sont requises { if(isset($_POST["checkdest"][$numpub]))//on récupere l'id du destinataire contenu dans le checkbox { $user_id=$_POST["checkdest"][$numpub]; $SQLdest="SELECT * FROM user WHERE user_id=$user_id"; $rc_dest = @mysql_query($SQLdest); $row_users=mysql_fetch_array($rc_dest); $titre_user=$row_users["user_titre"]; $nom_user=$row_users["user_nom"]; $prenom_user=$row_users["user_prenom"]; $adresse_user=$row_users["adresse"]; $cp_user=$row_users["code_postal"]; $ville_user=$row_users["ville"]; $tel_user=$row_users["user_tel"]; $email_user=$row_users["user_email"]; } } //si infos personnelles requises if(isset($_POST["my_info"])) { $SQL_my_info="SELECT * FROM my_info WHERE 1"; $rc_my_info=mysql_query($SQL_my_info); $row_my_info=mysql_fetch_array($rc_my_info); if(mysql_num_rows($rc_my_info)==0) { mysql_query("INSERT INTO my_info (my_info_titre) VALUES('')"); $my_info_id=mysql_insert_id(); } else { $my_info_titre=$row_my_info["my_info_titre"]; $my_info_nom=$row_my_info["my_info_nom"]; $my_info_prenom=$row_my_info["my_info_prenom"]; $my_info_enseigne=$row_my_info["my_info_enseigne"]; $my_info_adresse=$row_my_info["my_info_adresse"]; $my_info_cp=$row_my_info["my_info_cp"]; $my_info_ville=$row_my_info["my_info_ville"]; $my_info_tel=$row_my_info["my_info_tel"]; $my_info_fax=$row_my_info["my_info_fax"]; $my_info_email=$row_my_info["my_info_email"]; } } // si autres infos requis if(isset($_POST["other_info"])) { $nb_form=$_POST["nb_otherinfo"]; for ($num=1; $num <= $nb_form; $num++) { if ($_POST["otherinfo_id_$num"]!="")// on récupere les valeurs des champs otherinfo_id_1,otherinfo_id_2,otherinfo_id_3,etc.... { $SQL_other_infos="SELECT * FROM publipostage WHERE publipostage_id=".$_POST["otherinfo_id_$num"]; $rc_other_infos=mysql_query($SQL_other_infos); $row_other_infos=mysql_fetch_array($rc_other_infos); $publipostage_keyword=$row_other_infos["publipostage_keyword"]; $publipostage_texte=$_POST["other_info_$num"]; $publipostage_texte=str_replace(CHR(10),"\par ", $publipostage_texte); $publipostage_texte=change_carspec($publipostage_texte); $output = str_replace("$publipostage_keyword", "$publipostage_texte", $output); } } } // on changes les mots clé par les valeurs des variables //si un mot clé n'est pas dans le document , il sera simplement ignoré ;-) $output = str_replace("#date#","$date_jour", $output); $output = str_replace("#util_titre#","$titre_user", $output); $output = str_replace("#util_nom#","$nom_user", $output); $output = str_replace("#util_prenom#","$prenom_user", $output); $output = str_replace("#util_adresse#","$adresse_user", $output); $output = str_replace("#util_cp#","$cp_user", $output); $output = str_replace("#util_ville#","$ville_user", $output); $output = str_replace("#util_tel#","$tel_user", $output); $output = str_replace("#util_email#","$email_user", $output); $output = str_replace("#mon_titre#","$my_info_titre", $output); $output = str_replace("#mon_nom#","$my_info_nom", $output); $output = str_replace("#mon_prenom#","$my_info_prenom", $output); $output = str_replace("#mon_cp#","$my_info_cp", $output); $output = str_replace("#mon_enseigne#","$my_info_enseigne", $output); $output = str_replace("#mon_adresse#","$my_info_adresse", $output); $output = str_replace("#ma_ville#","$my_info_ville", $output); $output = str_replace("#mon_tel#","$my_info_tel", $output); $output = str_replace("#mon_fax#","$my_info_fax", $output); $output = str_replace("#mon_email#","$my_info_email", $output); //si on utilisateur >1er alors on ajoute \page qui correspond à saut de page en rtf. if($numpub>0){$texte.=" \page ".$output;}else{$texte.=$output;} } //enfin on ouvre le fichier avec les variables implémentées $fp = fopen ( $temp_file, 'a+' ); fputs($fp,$texte); fclose ( $fp ); header("Content-type: application/force-download"); header("Content-disposition: inline; filename=\"$temp_file\";"); $fh=fopen($temp_file, "rb"); fpassthru($fh); fclose($fh); unlink($temp_file); } else {//si aucun document choisi... echo "Acces Interdit!"; } mysql_close(); ?>
Commentaires
J'ai a peut pret exactement le meme soucis que Thiefou, une piste ? Moi, c'est le serveur Apache qui plante
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
^_^
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...)
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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.