Formatage de variable dans Flash CS3

Kzimir

Membre expert
Club iGen
3 Mai 2001
1 218
7
Paris
Bonjour,

J'ai développé un petit site pour mon entreprise. Le formulaire de contact doit fonctionner via une CGI et non du code PHP, c'est comme ça...

En fait on reçoit bien le mail mais par contre les variables arrivent avec tout leur formatage html...

Je m'explique : au lieu de recevoir
email = contenu du champ email
on reçoit email = TEXTFORMAT LEADING=\"2\"P ALIGN=\"LEFT\"FONT FACE=\"Century Gothic\" SIZE=\"12\" COLOR=\"#666666\" LETTERSPACING=\"0\" KERNING=\"0\"[email protected]/FONT/P/TEXTFORMAT

Queqlu'un a déjà vu ça et aurait une idée ???

Merci
 
Bonjour,

J'ai développé un petit site pour mon entreprise. Le formulaire de contact doit fonctionner via une CGI et non du code PHP, c'est comme ça...

En fait on reçoit bien le mail mais par contre les variables arrivent avec tout leur formatage html...

Je m'explique : au lieu de recevoir
email = contenu du champ email
on reçoit email = TEXTFORMAT LEADING=\"2\"P ALIGN=\"LEFT\"FONT FACE=\"Century Gothic\" SIZE=\"12\" COLOR=\"#666666\" LETTERSPACING=\"0\" KERNING=\"0\"[email protected]/FONT/P/TEXTFORMAT

Queqlu'un a déjà vu ça et aurait une idée ???

Merci
On pourrait peut-être mieux t'aider si tu nous disait en quel langage est écrit ton script CGI et que tu nous montrais la partie du code qui merde :rateau:

;)
 
Oui bien sûr :)

Alors, la CGI est en PERL... et fonctionne, vu qu'on reçoit bien le mail...

Sur le bouton d'envoi on a le code suivant :
Bloc de code:
[FONT=Arial][SIZE=2]on (release) {
 // On teste si les champs sont  remplis 
 if ((email != "") && (objet != "") && (msg != ""))  {
  // Envoi simplement des données à la page de script CGI  !
  ("/cgi-bin/contact/mail_fr.cgi", 0, "POST");
  messErreur = "Votre  message a bien été envoyé !";
 } else {
  messErreur = "Merci de remplir  tous les champs !";
 }
}[/SIZE][/FONT]

On a fouillé un peu les tutoriaux sur internet mais rien trouvé pour le moment...
 
Oui bien sûr :)

Alors, la CGI est en PERL... et fonctionne, vu qu'on reçoit bien le mail...

Sur le bouton d'envoi on a le code suivant :
Bloc de code:
[FONT=Arial][SIZE=2]on (release) {
 // On teste si les champs sont  remplis 
 if ((email != "") && (objet != "") && (msg != ""))  {
  // Envoi simplement des données à la page de script CGI  !
  ("/cgi-bin/contact/mail_fr.cgi", 0, "POST");
  messErreur = "Votre  message a bien été envoyé !";
 } else {
  messErreur = "Merci de remplir  tous les champs !";
 }
}[/SIZE][/FONT]

On a fouillé un peu les tutoriaux sur internet mais rien trouvé pour le moment...
C'est le code de mail_fr.cgi qu'il nous faut.

D'après ce que je vois je suppose que mail_fr.cgi prend les valeurs passer en POST et créer à partir de là le contenu mail.
Donc ça doit être dans ce code qu'il y a une merdouille (c'est même presque sûr).

:)
 
Moi j'ai plutôt l'impression d'un souci de programmation dans le flash, il faudrait que tu nous montres plutôt comment est foutu ton .fla et le code que tu as mis exactement, notamment comment tu crées tes variables et tes champs de saisie.
 
À priori, tes champs de formulaire dans Flash sont en HTML... du coup effectivement quand tu recupères la variable associée (email par exemple), flash te donne la chaine html complète, pas une chaine 'nettoyée'.

Tu peux tout d'abord commencer ar essayer de décocher la case 'html' dans le paneau de propriétés quand le champ est selectionné.

Ce qui me semble étrange c'est qu'il y ait du formatage html sur les champs de formulaire alors que les variables sont assignées en mode trash* . À ta place je testerais le mode propre**, ça peut résoudre ton problème.


* mode trash pour les textes dans Flash : Quand un texte dynamique est selectionné, on rempli le champ "nom de variable" dans le panneau propriété. Ensuite on accède au texte tout simplement en pointant la variable comme dans l'exemple de Kzimir. Le problème avec ça c'est que à part récupérer le texte on ne sait trop comment, ben on peut pas agir sur le champ texte.

** mode propre : Quand un texte dynamique est selectionné, on rempli le champ "nom d'occurence" dans le panneau propriété (disons qu'on mette 'leChamp'). Ensuite on accède au texte par la propriété leChamp.text ou par la propriété leChamp.htmlText suivant que la propriété leChamp.html a été définie sur false ou true auparavant.
Voilà voilà, personnellement j'aurai toujours tendance à faire le + de choses possible concernant la configuration des champs texte en code, et non en cochant les boiboites de l'IDE, parce que j'ai vraiment de mauvaises expériences avec l'ide de Flash.

De mémoire un champ de formulaire qui fonctionne ça se configure comme ça :

Bloc de code:
this.leChamp.type = "input";
this.leChamp.embedFonts = true;//si tu veux une police qui a été icluse dans la bibliothèque et 'liée'.
this.leChamp.background = true;
this.leChamp.backgroundColor = 0xFFFFFF;
this.leChamp.border = true;
this.leChamp.borderColor = 0xCDCDCD;
this.leChamp.html = false;
this.leChamp.multiline = true;// ou false pour une seule ligne
this.leChamp.wordWrap = true;// ou false pour une seule ligne
this.leChamp.restrict = "0-9";// par exemple, si c'est un champ de code postal

this.provTF = new TextFormat("nomDeLiaisonDeLaPolice",12,0x000000);
this.leChamp.setTextFormat(this.provTF);
this.leChamp.onChanged = function() {  this.setTextFormat(this._parent.provTF); };
En ce qui concerne le onChanged je suis pas tout à fait sûr qu'il soit utile... à tester sans aussi ;)

Ensuite tu accèdes au contenu du champ avec sa propriété 'text' :
Bloc de code:
foo = this.leChamp.text;



Globalement les formulaires c'est quelque chose d'assez chiant en Flash. Quand on les manipule souvent, il faut vite se faire une classe pour pas avoir à mettre les mains dans toute ces propriétés et rendre la création de champs textes facile et fiable.
 
Normalement champ.text ne devrait pas donner le formatage html, c'est avec champ.htmlText qu'on le récupère. Et effectivement mettre le nom de la variable dans le champ var des propriétés de champ de texte n'est pas une méthode très orthodoxe (plus que déconseillée dans Flash 9 / AS 3 si j'en crois la littérature).
 
Normalement champ.text ne devrait pas donner le formatage html, c'est avec champ.htmlText qu'on le récupère.

C'est à vérifier, mais il me semble bien avoir déjà vu ça :

Si tu crées un champ avec html sur true, et que tu le remplis avec sa propriété htmlText, si ensuite tu accèdes à la propriété text tout court (je sais c con mais j'aime faire des tests cons :) ), he ben je crois bien que flash te ressort le html en texte... (je te l'accorde, c'est pitoyable).