Problème de caractère avec flash

Résolu/Fermé
Annhydrium Messages postés 1781 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 3 mars 2011 - 26 déc. 2008 à 15:07
 vinz57 - 5 juin 2009 à 11:57
Bonjour,

Voila cela fait quelques mois que je programme en flash et donc j'en suis rendu a faire un formulaire d'inscription en flash avec un script PHP lors de l'envoi.

Le problème réside dans le fait que lorsque j'essaye de faire un @, il apparait à, ayant lus quelques forum a ce sujet j'ai donc séparé en deux partie l'adresse mail... Mais la en testant tous les champs je me rend compte que lorsque je veux taper un . il m'affiche :, ou encore lorque c'est un ? il m'affiche < donc j'avoue ne rien comprendre, j'ai regardé l'intégration des composant testé avec des composant mx...

Merci de votre aide...
A voir également:

9 réponses

Ofwolfandlucho
28 févr. 2009 à 10:14
C'est bon j'ai trouvé le problème.

De mon côté, ça marchait sur IE mais pas sur Firefox.
Le problème vient de l'intégration dans le document html, il suffit juste d'enlever les lignes suivantes:

<param name="wmode" value="transparent" />


Et il faut aussi enlever
wmode="transparent"
dans la balise embed qui se trouve juste en dessous (si comme moi tu avais fait une intégration automatique avec dreamweaver ou flash)
C'est con si on veut vraiment le parametre transparent, ce qui était mon cas, mais même en enlevant ces paramètres, mon anim était toujours "transparente", allez comprendre...

Apparemment c'est un bug récurrent.

Voilà, j'espère que je vous aurai éclairés.
1
Merci beaucoup pour cette solution.
Après une bonne prise de tête sur action script et php, ça m'apprendra à chercher tout seul, tiens.
Flash, c'est que porte le nain desfois quand même !!!
0
Ofwolfandlucho
27 févr. 2009 à 17:26
J'ai exactement le même problème, c'est à ne rien comprendre.

Si quelqu'un a une solution...
0
Annhydrium Messages postés 1781 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 3 mars 2011 257
27 févr. 2009 à 19:09
en fait je pense contourner le problème en utilisant les composant mx (du genre mx.textarea.$$$)...

J'ai abandonner de mon coté mais je chercherai de ce coté ^^
0
Annhydrium Messages postés 1781 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 3 mars 2011 257
28 févr. 2009 à 10:19
zarb ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ofwolfandlucho
1 mars 2009 à 17:06
Ca marche chez toi?
0
Annhydrium Messages postés 1781 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 3 mars 2011 257
1 mars 2009 à 19:12
j'ai finit par faire le script en php ^^
0
J'ai exactement le même soucis, mais moi j'ai absolument besoin de la transparence (et quand j'enlève les balises de transparence, l'anim s'affiche sur fond blanc...).

J'ai fait un formulaire flash/php (méthode POST) qui marche parfaitement seul, mais quand je l'intègre à mon site:
- Firefox refuse de taper certains caractères (chiffres, @, etc.)
- Internet Explorer n'arrive pas à envoyer le mail ("erreur php").

J'ai tout essayé, ça fait 4 jours complets que je tente les solutions trouvées sur les forums ou les tutos, et RIEN ne résouds mon soucis!!! Apparemment ça viendrait des balises html ou xml de la page qui accueille le formulaire (utf-8, etc.) mais je ne suis même pas sûre puisque même ces changements ne fonctionnent pas, donc je suis ouverte à toute tentative.
Pitié, aidez-moi!


Pour voir le soucis: http://kom-personne.com/ rubrique "contact".


Voici la page qui accueille le formulaire (dans l'animation Flash) (je pense que le soucis vient de cette page puisque sans elle le formulaire fonctionne):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script src="http://obscurantisorder.free.fr/kompersonne/Scripts//AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0" margintop="1px">
  <tr>
    <td valign="top"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://fpdownload2.macromedia.com/get/shockwave/cabs/flash/swflash.cab#3,0,0,0"
width="850" height="800" align="center" margintop="20px">
      <param name="SRC" value="http://obscurantisorder.free.fr/kompersonne/labo/site.swf" />
      <param name="QUALITY" value="high"/>
      <param name="SCALE" value="exactfit" />
      <param name="wmode" value="transparent">
      <embed src="http://obscurantisorder.free.fr/kompersonne/labo/site.swf" width="850" height="800" align="center" pluginspage="https://helpx.adobe.com/shockwave/shockwave-end-of-life-faq.html"
type="application/x-shockwave-flash" quality="high" wmode="transparent" scale="exactfit"> </embed>
    </object></td>
  </tr>
</table>
  </tr>
</table>
</body>
</html>






Voici mon php:
<?php
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // élimine les anti-slashs d'échappement
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";

/* Paragraphe à decommenter pour tester le script php seul, sans le fla
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><body>Salut<br /> mon cher<br /><br />Bye</body></html>';
$_POST['messageText'] = "Salut  mon cher  Bye";
$_POST['expediteur'] = "expediteur@fai.fr";
$_POST['mailReponse'] = "expediteur@fai.fr";
*/

if(isset($_POST['sujet']))$sujet = $_POST['sujet'];
else $erreurPHP .= "Variable 'sujet' non transmise\n";
 
if(isset($_POST['messageHtml']))$messageHtml = $_POST['messageHtml'];
else $erreurPHP .= "Variable 'message' non transmise\n";

if(isset($_POST['messageText']))$messageTexte = $_POST['messageText'];
else $erreurPHP .= "Variable 'message' non transmise\n";
 
if(isset($_POST['expediteur']))$expediteur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non transmise\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\n";
 
if($erreurPHP != "") echo "erreurPHP=".urlencode(utf8_encode($erreurPHP));
else
{
    $to = "anais@kom-personne.com";
    $sujet = decoder($sujet);
    $expediteur = decoder($expediteur);
    $messagehtml = decoder($messageHtml);
    $messageTexte = utf8_decode($messageTexte);
   
     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
     $headers .= 'Content-Transfer-Encoding: 8bit';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     $message = "This is a multi-part message in MIME format\n\n";

     $message = "--$frontiere\n";
     $message .= "Content-Type: text/plain; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageTexte."\n\n";

    
     //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= "--$frontiere\n";
     $message .= "Content-Type: text/html; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageHtml."\n\n";

     $message .= "--$frontiere--\n";

    $mail_OK = mail($to, $sujet, $message, $headers) ;
   
 
    if (!$mail_OK)
    {
        $erreurPHP .= "Problème lors de l'envoi du mail";
       
    }
    echo "erreurPHP=".urlencode(utf8_encode($erreurPHP));
}
?>





Et enfin, mon Action Script:
import mx.controls.TextInput;
import mx.controls.TextArea;
import mx.controls.CheckBox;
import mx.controls.Button;

// On référence les occurences de compos pour profiter du typage strict
var tiEmail:TextInput = this.email_ti;
var taCommentaire:TextArea = this.commentaire_ta;
var taSortie:TextArea = this.sortie_ta;
var cbLettre:CheckBox = this.lettre_cb;
var mcEnvoyer:Button = this.envoyer_mc;

// Initialisation des compos
taSortie["depthChild0"]._visible = false; // hack pour remplacer les 4 lignes ci-dessus
taSortie.setStyle("color", "0xffffff");
taSortie.setStyle("fontStyle", "italic");
taSortie.setStyle("textAlign", "center");
taSortie.label.selectable = false;
cbLettre.label = "Recevoir la lettre d'information";

// Ordres de tabulation
tiEmail.tabIndex = 3;
cbLettre.tabIndex = 4;
taCommentaire.tabIndex = 5;
mcEnvoyer.tabIndex = 6;


var email:String;
var recevoirLettre:Boolean;
var commentaire:String;

// Fonctions outils

function afficherEnSortie(pChaine:String):Void
{
    taSortie.text = pChaine;
}

function reinitFormulaire():Void
{
    tiNom.text = tiPrenom.text = tiEmail.text = taCommentaire.text = "";
    cbLettre.selected = false;
}

function validerFormulaire ():String
{
   
    email = tiEmail.text;
    commentaire = taCommentaire.text;
    recevoirLettre = cbLettre.selected;
   
    var erreurs:String = "";
   
   

    if (email == "") erreurs += "Merci de remplir le champ 'email'" + newline;
    else
    {
        var atIndex:Number = email.indexOf("@");
        var dotIndex:Number = email.indexOf(".", atIndex);
        trace(atIndex + " " + dotIndex);
        if (atIndex == -1 || dotIndex == -1 || dotIndex - atIndex <= 1)
            erreurs += "L'email n'est pas valide" + newline;
    }
    return erreurs;
}

function formerMessageText ():String
{
    var message:String = "Formulaire :";
    message += "Origine : " + this._url + "\r\n";
    message += "Adresse email : " + email +"\r\n";
    if (recevoirLettre)
        message += "Personne souhaitant recevoir la lettre d'information.\r\n";
    if (commentaire != "")
        message += "Commentaire :\r\n";
        message += commentaire;
   
    return message;
}

function formerMessageHtml ():String
{
    var message:String = "<html><head><style type='text/css'> p{font: 12px Arial} </style></head><body>";
    message += "<h4>Formulaire : </h4>";
    message += "<p>Origine : " + this._url + "</p>";
    message += "Adresse email : <a href='mailto:" + email + "'>" + email +"</a></p>";
    if (recevoirLettre)
        message += "<p>Personne souhaitant recevoir la lettre d'information.</p>";
    if (commentaire != "")
        message += "<p><u>Commentaire :</u><br />";
        message += commentaire;
    message += "</p></body></html>";
   
    return message;
}

function envoyerMail ():Void
{
    mcEnvoyer.enabled = false;
   
    var envoyeur:LoadVars = new LoadVars();
    var receveur:LoadVars = new LoadVars();   
   
    envoyeur.sujet = "Formulaire";
    envoyeur.messageText = formerMessageText ();
    envoyeur.messageHtml = formerMessageHtml ();
    envoyeur.expediteur = email;
    envoyeur.mailReponse = email;
   
    receveur.onLoad = onMailEnvoye;
   
    envoyeur.sendAndLoad("formulaireTEST3.php", receveur, "POST");
    afficherEnSortie("Envoi en cours...");
}

function onMailEnvoye (pSuccess:Boolean):Void
{
    mcEnvoyer.enabled = true;
    if (!pSuccess)
    {
        afficherEnSortie("Problème avec le script PHP.");
    }
    else if (this.erreurPHP == "")
    {
        afficherEnSortie("L'envoi s'est terminé avec succès.");
        reinitFormulaire();
    }
    else
    {
        afficherEnSortie("Erreurs PHP : \n" + this.erreurPHP);
    }
}




Merci!!!
0
Annhydrium Messages postés 1781 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 3 mars 2011 257
29 mai 2009 à 13:19
il n'existe pas de solution apparente or, deezer qui lui utilise du flash y arrive... (lors du login) problème est lié a firefox
0
J'ai trouvé une solution qui fonctionne très bien également, il suffit de remplacer vos champs texte de saisie par le composant TextInput de Flash.
Pour le trouver, allez dans Fenêtre - Composants - User Interface.
0