Aller au contenu

Pbs affichage caractère "@" et "." Firefox et IE 7 PC


jaguar2007

Sujets conseillés

Bonjour à tous,

Je cherche sur les forums depuis plusieurs jours la réponse à mon problème, mais en vain. Le voici :

J'ai réalisé un site internet tout en flash.

Dans la rubrique "Contact" de ce site, j'y ai mis plusieurs champs (nom, adresse mail, message) qui forment donc un formulaire et qui permet de laisser un message. Ce message est ensuite recu dans la boite mail du site.

Pour que cela fonctionne, j'ai utilisé bien évidemment un fichier php (fourni sur internet) que j'ai nommé email.php, voici le code entier du fichier (toutes les lignes y figurent) :

<?php
/***************************************************\
* PHP 4.1.0+ version of email script. For more
* information on the mail() function for PHP, see
* [url="http://www.php.net/manual/en/function.mail.php"]http://www.php.net/manual/en/function.mail.php[/url]
\***************************************************/


// First, set up some variables to serve you in
// getting an email. This includes the email this is
// sent to (yours) and what the subject of this email
// should be. It's a good idea to choose your own
// subject instead of allowing the user to. This will
// help prevent spam filters from snatching this email
// out from under your nose when something unusual is put.

$sendTo = "balabala_AT_balabala.fr";
$subject = "My Flash site reply";

// variables are sent to this PHP page through
// the POST method. $_POST is a global associative array
// of variables passed through this method. From that, we
// can get the values sent to this page from Flash and
// assign them to appropriate variables which can be used
// in the PHP mail() function.


// header information not including sendTo and Subject
// these all go in one variable. First, include From:
$headers = "From: " . $_POST["name"] ." ". $_POST["lastname"] . "<" . $_POST["email"] .">\r\n";
// next include a replyto
$headers .= "Reply-To: " . $_POST["email"] . "\r\n";
// often email servers won't allow emails to be sent to
// domains other than their own. The return path here will
// often lift that restriction so, for instance, you could send
// email to a hotmail account. (hosting provider settings may vary)
// technically bounced email is supposed to go to the return-path email
$headers .= "Return-path: " . $_POST["email"];

// now we can add the content of the message to a body variable
$message = $_POST["message"];


// once the variables have been defined, they can be included
// in the mail function call which will send you an email
mail($sendTo, $subject, $message, $headers);

?>

Tout fonctionne à merveille sous mac, Safari comme Firefox, mais sur PC, il y a un problème : l'utilisateur ne peut pas taper son caractère "arobase" et le "point ." se transforme en ":" dans les champs du formulaire si il est sous Firefox ou IE 7.

En revanche, sous IE 6 PC, la saisie des caractères dans le formulaire fonctionne correctement.

Avez vous une idée du probleme ?

Merci d'avance

Amitiés

Jag'

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

S'il s'agit d'un problème au niveau de la saisie, cela ne doit surement pas venir du script php puisque celui-ci est exécuté sur le serveur.

Tu peux nous en dire un peu plus ? Nous donner une url par exemple ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

Jaguar2007 ne préfère pas donner ici l'url du site en question. Il me l'a donné en MP et j'ai pu constater qu'en effet, sur le formulaire développé en flash, il est impossible de saisir un "@" ou un "."

Il est clair que ca n'a rien à voir avec le php... Je laisse le soin aux spécialistes de répondre :)

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

Hahaha !! désolé je ris nerveux, je suis dans la même situation que toi :)

Enfin presque, je m'explique,

Je suis aussi en train de mettre à jour mon site en full flash.

*Et pareil au lieu de continuer à utiliser un mailto:....., j'ai opté pour un form flash +PHP qui fonctionne très bien OFFLINE et ONLINE à partir du moment que le swf est joué seul, sans HTML, et ce sur tout les nav possible...

Evidemment comme le précisait Norseb, cela ne vient pas de ton PHP, puisque côté serveur...

Mais bel et bien de ton html.

Par contre ce qui à l'air différent avec ton problème par rapport au mien, sauf mauvaise lecture de ma part, c'est que toi ça fonctionne avec firefox sous mac et pas sur PC ? et pas sur IE7 sur PC, par contre sur IE6 pas de soucis ?

Etrange, pour ma part c'est pas du tout sur FIREFOX (PC+MAC) et par contre IE sans soucis... j'ai IE 7.0.5730.11 (par contre pas testé avec IE6)

Enfin bref tout ça ne t'avance pas par contre, mais si cela est qd même similaire, test ça pour voir jusqu'où nos soucis sont pareils, car moi aussi problème d'affichage "@" + "." (même si le "." peut affichable via celui du pavé numérique (essaie)

Test ton anim flash (avec php et swf ds le même répertoire) et ce sans HTML !! tu glisses ton swf ds n'importe quelle fenêtre de nav (essie les toutes) pour ma part aucun problème ça fonctionne bien (bon ok la finalité de l'envoie sera tronqué vu que c offline pas sur serveur, mais au moins tu peux voir si "@" + "." s'affichent ou non). Donc si ça s'affiche, on a le même soucis, ce qui voudrait dire que tu dois utiliser un swf avec fond transaprent, soit le wmode activé par le html (voilà pourquoi ça ne fonctionne pas), il parait que c'est un problème reconnu par MACROEDIA et FIREFOX, mais qu'il n'y a pour le moment aucune solution...

La seule solution étant de faire un flash avec un fond normal, pas de fond transparent, tu me suis ?

Je suis toujours en train de chercher une ruse. bien que pour le moment j'en ai trouvé une qui me va qu'à moitié...

Je te la livre là pour le moment, mais ça reste du bricolage et ce n'est pas très "ergonomique"

sur ton bouton "effacer", si tu en as un (je ne sais pas vu que je n'ai pas accès à des sources)

tu mets ça : je supose en fin à peu de chose prêt en fonction comment tu as appelé tes variables :

on (release) {

var mail = "";

var sujet = "";

var msg = "";

var error = "";

}

t'as qu'à rajouter dans la partie var mail... var mail = "you_AT_yourdomain.com"; ou juste var mail = "***@***.com"; en dur donc

puis dans l'action scrip côté formulaire

tu devrais avoir un truc comme ça qui commence ton script...

mail = "";

sujet = "";

msg = "";

error = "";

pareil tu peux en dur rajouter :

mail = "you_AT_yourdomain.com"; ou mail="***@***.com";

l'intérêt c que tu forces à apparaitre ces éléments, et ils s'afficheront sans soucis... par contre si tu as des boucles qui vérifient si l'email est bien tapé ou que les champs sont bien remplies, là soucis ça va "merder" et ne pas faire apparaitre l'indication...

Alors soit tu changes le fond transaprent en mode normal, soit tu fais ça, moi j'ai opté pour cette 2nd solution étant donné que le fond transparent est un facteur important pour mon site...

j'aurais pu aussi laisser tel quel, et compter sur la finesse et l'intelligence des internaute, en se disant, tiens pas d'arobase, je ne peux pas envoyer mon mail, je vais faire un copier coller de l'arrobase ou de mon adresse mail complète.... mais bon ça, je pense que si ça ne fonctionne pas, les gens ne perdront pas de temps avec ça... alors qeu ptêt avec le fait de forcer le champs, et mettre en dur l'arrobase et le point...chercheront à le remplir plus facilement.

Ce n'est que supposition... en tout les cas désolé de ne pouvoir plus t'aider, en espérant que cela corresponde un peu, et si tu trouves une réponse je suis preneur ;))

Surtout que la mise à jour du site est prévue pour aujourd'hui, ou demain.

désolé pour la longueur, et certainement les redondances et autres fautes d'orthographes...

bonne journée,

++

5ive

Modifié par 5ive
Lien vers le commentaire
Partager sur d’autres sites

le truc serait peut être de définir le "à" .

puisque c'est ça qui apparait non ?! quand tu essaies de taper "@" (Alt+Gr)

En fait c comme si FF faisait sauter les MAj + touches comme par exemple le "~" "#" "{" etc... et le SHIFT ("." "/"... remplacé chez moi par ":")

Donc définir le charactère "à" (si c pareil pour toi) comme étant en fait le caractère "@" pareil pour le "." (bien que tu peux accéder au "." via le pavé numérique)

mais je ne sais pas trop comment m'y prendre surtout que je susi une quiche en AS :)))

sinon on m'a filé ça hier :

ça peut donner un indice :


// DECLARATION DES VARIABLES
var altGr = 0;
var Maj = 0;
var cible_text = "";
var derniere_touche = "";



// ECOUTEUR DES TOUCHES ENFONCEES
var monEcouteur:Object = new Object();
monEcouteur.onKeyDown = myOnKeyDown;
monEcouteur.onKeyUp = myOnKeyUp;
Key.addListener(monEcouteur);


// ANALYSE DES COMBINAISONS DE TOUCHE POUR CARACTERES SPECIAUX
function myOnKeyDown() {
set (Selection.getFocus() + ".restrict", "a-z A-Z 1-9 ^!@#%.."); // Restriction des caractères non pris en compte.
derniere_touche = Key.getCode();// recuperation du code de la dernière touche enfoncé
switch (derniere_touche) {
case 18 :
cible_text = eval(Selection.getFocus()+".text"); // Sauvegarde du texte dès qu'un caractère special est "potentiellement" appellé.
altGr = 1;
break;
case 16 :
cible_text = eval(Selection.getFocus()+".text"); // Sauvegarde du texte dès qu'un caractère special est "potentiellement" appellé.
Maj = 1;
break;
default :
cible_text = eval(Selection.getFocus()+".text"); // Sauvegarde du texte dès qu'un caractère special est "potentiellement" appellé.
comboTouche(derniere_touche)
break;
}
}


function myOnKeyUp() {
if (derniere_touche == 18 || derniere_touche == 17) { // deux code car la touche Alt Gr en renvoi deux...
altGr = 0;
}else if (derniere_touche == 16) {
Maj = 0;
}
}

// REPLACEMENT DU TEXTE SAUVEGARDE
function remplacement(){

set (Selection.getFocus() + ".text", "");
set (Selection.getFocus() + ".text", cible_text);
Selection.setSelection(1000,1000);
this[Selection.getFocus()+".text"];
altGr = 0;
Maj = 0;
}
function comboTouche(derniere_touche){
if (altGr == 1) {
switch (derniere_touche) {
case 48 :
cible_text += "@"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 51 :
cible_text += "#"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
}
}else if (Maj == 1) {
switch (derniere_touche) {
case 188 :
cible_text += "?"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 190 :
cible_text += "."; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
}
}else if (altGr == 0 && Maj == 0) {
switch (derniere_touche) {
case 52 :
cible_text += "'"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 188 :
cible_text += ","; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 190 :
cible_text += ";"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 223 :
cible_text += "!"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 191 :
cible_text += ":"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 54 :
cible_text += "-"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 53 :
cible_text += "("; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;
case 219 :
cible_text += ")"; //ajout du caractère arobase a la suite du texte sauvegardé.
remplacement();
break;

}
}
}

à palcer au niveau de tes champs en action...

ça marche terrible, sauf que ça fait sauter sur tout les chamaps d'autres signes de ponctuations "é è à î û etc...." donc pas terrible !

et quand je dis sauter, c sauter, si tu copies-colles un texte accentué (genre texte banal français avec ponctuations) et bien ces caratères/lettres sont tout simplement supprimés, pas remplacé par un caractère spécial...

Voilà si quelqu'un peut creuser cette piste...

merci

++

5ive

Modifié par 5ive
Lien vers le commentaire
Partager sur d’autres sites

Norseb, tu confirmes bien le soucis donc !

Bon bah au moins y a pas trop de variantes à ce problème, cependant il est de taille, et bien handicapant...

Si MACROMEDIA et FIREFOX le reconnaisent et n'ont pas trouvé de solution, va falloir y aller à la débrouille, comme ce que j'ai proposé ou trouver un moyen de contourner le problème avec du code, donc "alourdissement" de la cette section flash...

L'idéal serait donc le remplacement du caratère(s)...

Edit : Le bug vient bien de wmode : transparent

et transforme le clavier en clavier américain, enfin pas complètement, il ne devient pas un qwerty.

Les anglais ont le même soucis ^^

http://www.headlondon.com/blog/index.php/a...e-were-british/

++

5ive

Lien vers le commentaire
Partager sur d’autres sites

5five >Par contre ce qui à l'air différent avec ton problème par rapport au mien, sauf mauvaise lecture de ma part, c'est que toi ça fonctionne avec firefox sous mac et pas sur PC ? et pas sur IE7 sur PC, par contre sur IE6 pas de soucis ?

C'est tout a fait exact 5ive, sous mac, avec safari et firefox, la saisie des caractères marche très bien.

Sous PC, c'est le chaos :

IE6 : la saisie des caractères "@" et "." marche

IE7 : Ces memes caractères ne marchent pas

Firefox 1.5.0.4 PC : Ces memes caractères ne marchent pas

Effectivement, comme tu le dis dans un post plus bas, mon site utilise la fonction wmode:transparent

Il me reste donc à tester tes deux solutions alternatives.

Je vois cà cet après midi, et vous tiens informé

5ive, je confirme ce que tu disais, je viens de tester mon swf seul dans firefox PC (via Virtual PC sous mac), et il n'y a plus de problemes de caractères.

Au passage, ton site est très réussi, bravo :)

Jag'

Lien vers le commentaire
Partager sur d’autres sites

Bon, j'ai enlevé le wmode transparent, mais cela ne me satisfait guère.

5ive : ton alternative à forcer les caractères "@" et "." pourrait etre pas mal, seulement, imaginons que l'internaute s'appelle

jeancharles.linternaute_AT_free.fr ca va poser le meme probleme pour le "." dans jeancharles.linternaute.

Car, la majorité des utilisateurs à 90% vont effacer les caractères avant de taper leurs coordonnées, ce qui sera de nouveau un probleme.

N'y aurait-il pas une troisième autre alternative ? :)

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai fini par trouver une alternative pour ce probleme rencontré.

J'ai enlevé la commande Wmode (qui au passage, ralentit fortement l'animation sur mon mac).

J'ai agrandi ma zone d'animation flash, et intégré sur un calque le fond de la page.

Ca fonctionne nickel.

Je déconseille vivement cette fonction wmode avec des formulaires qui peut jouer des tours sur certains browser.

Encore merci à 5ive et Norseb pour leur aide :-)

Lien vers le commentaire
Partager sur d’autres sites

  • 8 months later...

salut !

j'ai passé des heures sur le net pour trouver une solution qui fonctionne vraiment !

et j'ai fini par trouver :

remplcez "email" par le nom de votre champ texte

keyPresser = new Object();
keyPresser.onChanged = function(email:TextField) {
trace("string = "+(Key.getCode()));
if (48 == (Key.getCode())) {
email.text = email.text.slice(0,email.text.length-1) +"@";
}
if (190 == (Key.getCode())) {
email.text = email.text.slice(0,email.text.length-1) +".";
}
}
Key.addListener(keyListener);
email.addListener(keyPresser);

a+

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...