Jump to content

silv1

Webmaster Régulier
  • Content Count

    64
  • Joined

  • Last visited

Community Reputation

0 Neutre
  1. Merci theprogrammeur, maintenant ça marche nickel
  2. Bonjour, Depuis ce matin j'essaie en vain de régler un problème lié à l'affichage des données issues d'un formulaire. En fait sur mon site web j'ai un formulaire dont les infos sont envoyées à la fois sur une adresse mail et sur un fichier txt qui stocke les données des différents champs. Au niveau de la réception par e-mail tout marche nickel, les accents s'affichent correctement. Par contre au niveau du fichier txt tous les é è à etc sont transformés en "?" Je précise que le formulaire est en php et qu'il est intégré sur une page html dont le charset est "iso-8859-15". Autre chose: lorsque j'upload le fichier txt sur mon pc, là les accents s'affichent sans problème... Voici le petit bout de code php qui gère l'écriture des infos sur le fichier txt: CODE $f_8=str_replace(array("\r\n", "\n", "\r", ";"), array('/', '/', '/', ',') ,$f_8);$datedujour = date('d/m/y/H:i:s'); $filename="./admin/monfichier.txt"; $fl=fopen($filename,"a+"); fwrite($fl,"$datedujour;".$list['f_1'][$f_1].";$f_2;$f_3;$f_4;$f_5;$f_6;".$list['f_7'][$id].";$f_8;\n\r"); fclose($fl); N'y aurait-il pas moyen d'inclure dans ce code une commande par rapport aux accents? Merci d'avance pour vos conseils Silv1
  3. Bonjour! Merci kioob et marcb pour vos réponses... Alors en fait je viens de changer complètement mon formulaire de contact. J'ai trouvé un script php qui fonctionne à merveille et je n'ai donc plus de problème de formulaire bloqué Par contre j'aimerai bien retrouver une fonctionnalité que j'avais sur mon ancien formulaire, à savoir le stockage des infos recueillies sur un fichier txt. Sur mon autre formulaire j'utilisais ces lignes de code $datedujour = date('d/m/y/H:i:s'); $filename="./admin/monfichier.txt"; $fl=fopen($filename,"a+"); fwrite($fl,"''$f_2'|'$f_3'|'$f_4'|'$f_5'|'$f_6'|'$f_2'|\n\r"); fclose($fl); Mais vu que le nouveau formulaire est entièrement en php, je me demande ou placer ce code... J'ai essayé pleins de fois mais à chaque fois ça bug. Je vous indique donc le code du nouveau formulaire: avant la balise <html> CODE <?php$color_font_warn="#FF0000"; $color_form_warn="#FFCC66"; $list['f_1']=array("M","Mlle","Mme"); $list['f_7']=array("choix1","choix2","choix3"); if(isset($_POST['submit'])){ $erreur=""; 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); } } } $f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2))); $f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3))); $f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4))); $f_5=strip_tags(trim($f_5)); $f_6=trim(eregi_replace("[^0-9\ +]", "", $f_6)); if(!$f_1){ $erreur.="<li><span class='txterror'>Le champ « Civilité » requiert au moins une sélection.</span>"; $errf_1=1; } if(strlen($f_2)<2){ $erreur.="<li><span class='txterror'>Le champ « Nom » est vide ou incomplet.</span>"; $errf_2=1; } if(strlen($f_3)<2){ $erreur.="<li><span class='txterror'>Le champ « Prénom » est vide ou incomplet.</span>"; $errf_3=1; } if(strlen($f_4)<2){ $erreur.="<li><span class='txterror'>Le champ « Département » est vide ou incomplet.</span>"; $errf_4=1; } if(strlen($f_5)<2){ $erreur.="<li><span class='txterror'>Le champ « Adresse e-mail » est vide ou incomplet.</span>"; $errf_5=1; }else{ if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$', $f_5)){ $erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>"; $errf_5=1; } } if(strlen($f_6)<2){ $erreur.="<li><span class='txterror'>Le champ « Téléphonne » est vide ou incomplet.</span>"; $errf_6=1; } if($erreur==""){ // Création du message $titre="Message de votre site"; $tete="From:Site\n"; for($id=0; $id<count($list['f_1']); $id++){ if($f_1[$id]==1){ $corps.="Civilité : ".$list['f_1'][$id]."\n"; } } $corps.="Nom : ".$f_2."\n"; $corps.="Prénom : ".$f_3."\n"; $corps.="Département : ".$f_4."\n"; $corps.="Adresse e-mail : ".$f_5."\n"; $corps.="Téléphonne : ".$f_6."\n"; for($id=0; $id<count($list['f_7']); $id++){ if($f_7[$id]==1){ $corps.="Vous souhaitez: : ".$list['f_7'][$id]."\n"; } } $corps.="Remarques ou questions éventuelles : ".$f_8."\n"; if(mail("monmail", $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>"; } } } ?> Entre les balises <body> et </body> CODE <? 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> </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'>Civilité* :</span></td><td> <table border='0' cellspacing='0' cellpadding='0'> <? for($id=0;$id<count($list['f_1']);$id++){ if($f_1[$id]==1){$ct="checked";} print("<tr><td><input ".$ct." type='checkbox' name='f_1[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_1][$id]."</span></td></tr>"); unset($ct); }?> </table> </td></tr> <tr><td align='right' width='30%'><span class='txtform'>Nom* :</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'>Prénom* :</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%'><span class='txtform'>Département* :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Adresse e-mail* :</span></td><td><input type='text' style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?echo stripslashes($f_5);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Téléphonne* :</span></td><td><input type='text' style='width:200 <?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' value='<?echo stripslashes($f_6);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Vous souhaitez: :</span></td><td> <table border='0' cellspacing='0' cellpadding='0'> <? for($id=0;$id<count($list['f_7']);$id++){ if($f_7[$id]==1){$ct="checked";} print("<tr><td><input ".$ct." type='checkbox' name='f_7[$id]' value='1' border='0'></td><td><span class='txtform'>".$list[f_7][$id]."</span></td></tr>"); unset($ct); }?> </table> </td></tr> <tr><td align='right' width='30%'><span class='txtform'>Remarques ou questions éventuelles :</span></td><td><textarea style='width:360 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?echo$f_8?></textarea></td></tr> <tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr> </table> </form> <? } ?> Voilà donc le nouveau formulaire! Ma question est donc la suivante: selon vous ou dois-je placer les lignes de code permettant d'écrire les infos sur le fichier txt ? Merci d'avance Silv1
  4. OK j'essaierai d'intégrer ce code... Là depuis ce matin je galère pour enlever les retours chariots dans le champ commentaires (comments). J'ai essayé ça mais je suis pas du tout sûr de moi: $datedujour = date('d/m/y/H:i:s'); $filename="./admin/prospects.txt"; $comments = str_replace( array( "\r", "\n" ), '', $comments ); $fl=fopen($filename,"a+"); fwrite($fl,"''$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments';\n\r"); fclose($fl);
  5. Bonjour!!! C'est encore moi, et c'est encore un problème de formulaire... Alors voilà en fait lorsqu'un internaute remplit correctement tous les champs du formulaire tout marche nickel... Mais lorsqu'il omet d'indiquer une info les choses se compliquent: une page apparait avec un message indiquant que tel champ obligatoire n'a pas été saisi. Lorsque l'internaute revient en arrière avec le navigateur, il retrouve le formulaire avec les données qu'il venait de saisir. Mais une fois les infos modifiées, lorsqu'il clique sur le bouton "envoyer", plus rien ne se passe... La page reste fixe et le fichier php qui est censé gérer les données du formulaire ne se lance même pas. J'ai observé ce problème sous Firefox, par contre sur internet explorer ça fonctionne correctement Bizarre, bizarre je n'arrive pas du tout à voir d'où vient ce bug... Quelqu'un a t-il déjà été confronté à un problème similaire? Merci pour vos éclaircissements
  6. Merci Blman pour l'astuce mais je pense que mes connaissances en php sont trop limitées pour utiliser cette fonction Pour le moment j'ai simplement remplacé mes anciens séparateurs par des points virgules et ça marche imppécable! Merci à tous pour votre aide si précieuse Silv1
  7. Au fait, pour supprimer les retours chariots, est-ce que ces quelques lignes de code peuvent faire l'affaire? <?php $texte=nl2br($texte); $texte=str_replace(CHR(10),"",$texte); $texte=str_replace(CHR(13),"",$texte); ?> Merci bien! Silv1
  8. Merci à tous les deux pour vos réponses si rapides Je vais tout de suite faire le changement! SILV1
  9. Bonjour!!! Voici mon problème: en fait les données de mon formulaire sont à la fois envoyées par mail et stockées sur un fichier txt. Dans le fichier php qui gère le traitement des infos du formulaire j'ai inséré ces quelques lignes de code: $datedujour = date('d/m/y/H:i:s'); $filename="./admin/liste.txt"; $fl=fopen($filename,"a+"); fwrite($fl,"''$datedujour'|'$nom'|'$prenom'|'$adressemail'|'$departement'|'$tel'|'$sqlinterets'|'$comments'|\n\r"); /* on ferme le fichier */ fclose($fl); Tout marche nickel, les résultats du formulaires apparaissent sur le fichier liste.txt ; mais en fait j'aimerai obtenir directement un fichier au format csv avec séparateur point-virgule afin de rendre les données plus facilement exploitables. Que dois-je faire au niveau du code pour parvenir à ce résultat? Merci d'avance pour votre aide SILV1
  10. Merci à tous pour vos réponses. Je viens enfin de comprendre ce qui s'est passé. Depuis hier, notre page web figure en première page d'un site très connu qui redirige les internautes vers des ressources gratuites (documentation, échantillons). En consultant les stats ce matin je me suis rendu compte que nous avons ainsi reçu 1500 visiteurs en provenance de ce site... Et ils ont quasiment tous remplis un formulaire pour recevoir de la doc... Je retire ce que j'ai pu dire sur les serveurs d'OVH Merci encore pour vos conseils Silv1
  11. Oui Dadou, a chaque fois ce sont des clients qui ont pris la peine de remplir un long formulaire pour recevoir de la doc
  12. Bonjour Pluriels, Non au niveau du spam, il n'y a pas de problèmes. Le formulaire est sécurisé et l'on ne reçoit aucun spam... Pour infos, le nombre de messages depuis ce matin vient de dépasser les 1000!!!!!! C'est purement hallucinant, je ne pensais pas que cela pouvait arriver. Certains retards de mails doivent dépasser plusieurs mois...
  13. Uniquement pour les mails en provenance du formulaire... Pour les autres mails ça m'a l'air de fonctionner correctement!
  14. Actuellement les infos du formulaire ne sont pas pas stockées sur une base de données mais elles sont simplement expédiées sur une adresse mail. Je me demandais simplement si le fait de faire pointer les résultats du formulaire sur une base mysql constituerait une sécurité supplémentaire pour récupérer des infos qui tardent à arriver par mail...
  15. Une dernière petite question: ne serait-il pas plus judicieux de faire pointer les messages non seulement sur les adresses mails mais aussi sur une base de données? Je suppose qu'au niveau de la base de données les messages arriveraient instantanément...
×
×
  • Create New...