Bonjour à tous ,
Un petit souci :
J'ai une formulaire on ne peut plus simple, ou je récupére le nom, prénom et société.
Une fois validé, je reste sur la meme page et affiche soit un message de réussite avec affichage des variables, soit un message d'erreur.
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 <?php $color_font_warn="#FF0000"; $color_form_warn="#FFCC66"; if(isset($_POST['submit'])){ $erreur=""; // Nettoyage des entrées while(list($var,$val)=each($_POST)){ if(!is_array($val)){ $$var=strip_tags($val); }else{ while(list($arvar,$arval)=each($val)){ $$var[$arvar]=strip_tags($arval); } } } // Formatage des entrées $f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1))); $f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2))); $f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3))); // Verification des champs if($erreur==""){ // Création du message $titre="Message de votre site"; $tete="From:Site@Test.com\n"; $corps.="Nom : ".$f_1."\n"; $corps.="Prenom : ".$f_2."\n"; $corps.="Societe : ".$f_3."\n"; if(mail("test@teggggggggggggst.com", $titre, stripslashes($corps), $tete)){ $ok_mail="true"; }else{ $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>"; } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Document sans titre</title> </head> <body> <? if($ok_mail=="true"){ ?> <table width='100%' border='0' cellspacing='1' cellpadding='1'> <tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr> <tr><td> </td></tr> <tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr> <tr><td> </td></tr> <tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr> <tr><td> <a href="Generer.php"> Télécharger le document</a></td></tr> </table> <? }else{ ?> <form action='<? echo $PHP_SELF ?>' method='post' name='Form'> <table width='100%' border='0' cellspacing='1' cellpadding='1'> <? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?> <tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Nom :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Prenom :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Societe :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr> </table> </form> <? } ?> </body> </html>
En cas de réussite, j'affiche une url:
<a href="Generer.php"> Télécharger le document</a>
qui une fois cliquée, permet au client de télécharger un document dans lequel les infos du formulaires sont reprises.
Mon probléme, C'est que cela me génére bien mon document rtf, que je peux ouvrir, mais les variables ne s'afichent pas !!!
Dans generer.php:
'FULLNAME' => $_POST["f_1"],
'FULLADDRESS' => $_POST["f_2"],
'PREFEREDCHOICE1' => $_POST["f_3"],
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 <?php $_POST['f_1']=$f_1; $_POST['f_2']=$f_2; $_POST['f_3']=$f_3; function populate_RTF($vars, $doc_file) { $replacements = array ('\\' => "\\\\", '{' => "\{", '}' => "\}"); $document = file_get_contents($doc_file); if(!$document) { return false; } foreach($vars as $key=>$value) { $search = "%%".strtoupper($key)."%%"; foreach($replacements as $orig => $replace) { $value = str_replace($orig, $replace, $value); } $document = str_replace($search, $value, $document); } return $document; } $deadline = mktime(0,0,0,date('m'),date('d'), date('Y')); $vars = array( 'DATE' => date("F d, Y"), 'FULLNAME' => $_POST["f_1"], 'FULLADDRESS' => $_POST["f_2"], 'PREFEREDCHOICE1' => $_POST["f_3"], 'PREFEREDCHOICE2' => 'GBE SARL', 'PREFEREDCHOICE3' => 'TBC Incoporated', 'RESPONDDATE' => date('F, d, Y', $deadline), 'MCNAME' => 'CFA incorporated', 'MCADDRESS' => '227 East avenue', 'MCCITY' => 'NEW YORK', 'MCZIP' => '33222'); $new_rtf = populate_RTF ($vars, "mondocument.rtf"); $fr = fopen('output.rtf', 'w') ; fwrite($fr, $new_rtf); fclose($fr); header('Content-type: application/rtf'); header("Content-disposition: inline;filename=mondocument.rtf"); header("Content-length: " . strlen($new_rtf)); echo utf8_decode ($new_rtf); ?>Que passa ??????????????
Merci d'avoir pris le temps de me lire !
Partager