Problème formulaire flash et php - reçoit pas mon email [Résolu]

Signaler
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010
-
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
-
Bonjour,



J'aimerais avoir un peu d'aide pour mon formulaire créé dans flash en
appelant un fichier php. Tout a l'air de bien se dérouler quand je met
les info ca me dit votre email a b ien été envoyé mais je ne reçoit
jamais d'email.



Pourriez-vous m'aider je vous met le code que j'ai fait .



Merci



flash:

label_01 = "Votre nom";

label_02 = "Email";

label_03 = "No de téléphone";

label_04 = "Commentaires";

label_05 = "Veuillez remplir tous les champs";



text1 = label_01;

text2 = label_02;

text3 = label_03;

text4 = label_04;

text5 = label_05;





this.onEnterFrame = function() {



text_field_1.onSetFocus = function() {

if (text1 == label_01) {

text1 = "";

}

};

text_field_1.onKillFocus = function() {

if (text1== "") {

text1 = label_01;

};

};



text_field_2.onSetFocus = function() {

if (text2 == label_02) {

text2 = "";

}

};

text_field_2.onKillFocus = function() {

if (text2 == "") {

text2 = label_02;

}

};



text_field_3.onSetFocus = function() {

if (text3 == label_03) {

text3 = "";

}

};

text_field_3.onKillFocus = function() {

if (text3 == "") {

text3 = label_03;

}

};

text_field_4.onSetFocus = function() {

if (text4 == label_04) {

text4 = "";

}

};

text_field_4.onKillFocus = function() {

if (text4 == "") {

text4 = label_04;

}

};

};



function verifMail() {

// fonction classique de vérification de l'email.

if (text2.length >= 7) {

if (text2.indexOf("@") > 0) {

if ((text2.indexOf("@")+2) < text2.lastIndexOf(".")) {


if (text2.lastIndexOf(".") < (text2.length - 2)) {

return (true);

}

}

}

}

return (false);

}



function verifMsg() {

// on stocke le message à tester afin de ne pas

// altérer l'affichage pendant le test.

msgCheck = text4;

// vérification et modification des retour de ligne

for (i=0; i<text4.length; i++) {

if (msgCheck.substring(i, 2) == "\r") {

msgCheck =
msgCheck.substring(1, i-2) + "\n" + (msgCheck.substring(i+2,
msgCheck.length - i + 2));

}

}

text4 = msgCheck;

}



function envoyer() {

// fonction générale de vérification et d'envoi du mail.

if ((text1 "") or (text3 "") or (text4 == "")) {

text5 = "Tous les champs ne sont pas remplis...";

} else {

if (verifMail()) {

verifMsg();

text5 = "Le message est en cours d'envoi...";

loadVariablesNum("mail.php",_self, "POST");

text5 = "Le message a été envoyé avec succès.";

} else {

text5 = "Entrez un email valide";

}

}

}





mail.php:

<?php

$msgComplet = $text4;

$msgComplet .= "Auteur: $text1\n";

$msgComplet .= "Email : $text2\n";

$headers = "From: flashmail");

$headers .= "Reply-To: $text2\r\n"

mail("info@xxx.ca", $mailSujet, $msgComplet, $headers);

?>





Mon champs texte dynamique text5 m'indique bien le email a été envoyé avec succès...



Merci de votre aide c assez urgent.



Nace

34 réponses

Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

pour un bouton, non pas de
_parent si le bouton et les variables sont sur le mm sénario, si ton
bouton est en réalité un movieclip, alors oui il faut parent

la fonction onLoad (et non success, succes est un variable) est défini
avant, car c'est un DEFINITION de fonction, non un appel, c flash qui
l'appel automatiqument quand il a fini de chargé les données

pour php

si tu est en php < 5, un simple $nom recup la variable nom du lv (lv.nom)

si tu est en php >= 5 il faut soit mettre $HTTP_POST_VARS["nom"];

soit mettre en tete de page php

extract($HTTP_POST_VARS); et utiliser ensuite comme en php < 5

et je continurai a t'aider si tu acceptes mes réponses ! car je sais qu'elles marchent ! et j'aime bien augmenter mes stats CS

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

t'utilise quel version de Flash ?

car le :Type sert a typer les objets, il n'est pas obliatoire, mais permet d'avoir l'aide a la saisie dans Flash

donc si ca marche pas avec, ben tu le met pas !

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

mais nan tu fait rien avec succes

c'est un Flash qui la défini si il arrive a charger la réponse du php ou pas

donc tu laisse

onLoad = function(success)

et tu ajoue rien dans PHP

mais regarde l'aide de Flash bordel de .... c pas possible ca ... tu
pense pas que looké les infos qur ce que tu utilise serait bien av de
vouloir faire ?

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

ben si pas d'email dans ta boite

c que ton php déconne



pour success t'as compris ou pas ?

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

tes entetes sont fausses !

deja premiere ligne du header, tu a une ) en fin de ligne ....

ensuite dans le From: flashmail, flashmail doit etre une adresse email

enfin verifie quel server smtp tu utilise (dans php.ini)

t'as essy& au moins de t'envoyer un mail direct depuis le php (sans utiliser flash et en mettant les variables en dur ?)

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

dans le php.ini ou dans le fichier config d'apache, je sais plus

encore une fois t'as tester le php seul ?????

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

ben en tapant l'url de ton script

http://site.com/php.php


Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

alors 2-3 choses,

les valeurs de champ texte son accessible par

monChamp.text, il ne faut pas oublier le .text, que je ne vois null par dans ton script

ensuite, tu utilises un onEnterFrame qui défini des onSetFocus, mais la
fonction onEnterFrame est executé en permanence, ce qui veux dire que
tu redefini en permanace tes fonction onSetFocus ... pas sur que ce
soit le but !

enfin tu utilise un loadVariableNum pour communiquer avec PHP, je ne
saurais trop te conseilller d'utiliser un oject LoadVars, car
loadVariablesNum, envois tt le contenu du clip vers PHP, cad, les
fonctions & les variables, donc look donc LoadVars c'est bien mieux
...

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

merci de ta réponse je vais essayé ca tout de suite et je te redonne des news... c gentil de me repondre rapidement comme ca ;)



j'essai tout de suite a+



Nace
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

hm.. ca ne marche pas... je fais surement pas ce qu'il faut je c..

bon dans flash j'ai fait:
label_01 = "Votre nom";
label_02 = "Email";
label_03 = "No de téléphone";
label_04 = "Commentaires";
label_05 = "Veuillez remplir tous les champs";

text1 = label_01;
text2 = label_02;
text3 = label_03;
text4 = label_04;
text5 = label_05;


function verifMail() {
// fonction classique de vérification de l'email.
if (text2.length >= 7) {
if (text2.indexOf("@") > 0) {
if ((text2.indexOf("@")+2) < text2.lastIndexOf(".")) {
if (text2.lastIndexOf(".") < (text2.length - 2)) {
return (true);
}
}
}
}
return (false);
}

function verifMsg() {
// on stocke le message à tester afin de ne pas
// altérer l'affichage pendant le test.
msgCheck = text4.text;
// vérification et modification des retour de ligne
for (i=0; i<text4.length; i++) {
if (msgCheck.substring(i, 2) == "\r") {
msgCheck = msgCheck.substring(1, i-2) + "\n" + (msgCheck.substring(i+2, msgCheck.length - i + 2));
}
}
text4 = msgCheck;
}

function envoyer() {
// fonction générale de vérification et d'envoi du mail.
if ((text1.text "") or (text3.text "") or (text4.text == "")) {
text5 = "Tous les champs ne sont pas remplis...";
} else {
if (verifMail()) {
verifMsg();
text5 = "Le message est en cours d'envoi...";
var loadChamp = new LoadVars();
loadChamp.load("mail.php",0,"GET");
text5 = "Le message a été envoyé avec succès.";
} else {
text5 = "Entrez un email valide";
}
}
}


mon formulaire php est resté le même..

y'as-t-il un moyen d'afficher mes variable dans php? pour voir si elle sont bien remplis?

merci encore...
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

bon j'ai ajouté ca dans mon flash pour voir mes variables

c.nom = text1.text;
c.mail = text2.text;
c.texte = text4.text;

trace(c.nom);
trace(c.mail);
trace(c.texte);


en debug ca marque toujours undefined


hm.. pourquoi?
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

le c est defini comme : var c = new LoadVars();

merci encore

nace
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

nan mais tu le fait expré ou quoi ???

je t'ai dis que t'oublier les .text à la suite des nom de champ à plein d'endroit ! donc deja probleme

par exemple c'est :

text1.text = label_01;

ensuite c bien de mettre un LoadVars, mais ce qui aurait été encore
mieux c de regarder avant comment on s'en sert !! genre en ouvrant
l'aide de Flash



var lv:LoadVars = new LoadVars();

lv.email = "tata@toto.com";

lv.sujet = "tralalala";

lv.onLoad = function(success){

if (success){

trace ("mail envoyé");

} else {

trace ("impossible de se connecter a PHP");

}

}

lv.sendAndLoad("http://localhost/dossier/mail.php",
lv, "post"); // je met l'url complete (http://localhost) pour tester
depuis Flash sinon le php est pas interprété



donc en premier ouvre l'aide de Flash et look comment on se sert des diff obj, car c pas de la magie mais de la prog ...

++

Flash sans Limites
_Benjy chez kOlapsis


merci de penser a accepter
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

excuse moi... c un de mes premiers formulaire en tant normal j'utilise toujours la boite d'email...

bon regarde la j'ai raccourci tout ca pour des tests et ca marche meme pas.. dois-je utilise le nom de l'occurence ou de la var?

label_01 = "Votre nom";
label_02 = "Email";
label_03 = "No de téléphone";
label_04 = "Commentaires";
label_05 = "Veuillez remplir tous les champs";

text1.text = label_01;
text2.text = label_02;
text3.text = label_03;
text4.text = label_04;
text5.text = label_05;

trace(text1.text);

ca sors encore undefined...

je suis desole je veux pas te niaiser... c que j'ai ben de la misere la...

Nace
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

c'est un utilisation en nom d'occurence bien sur, l'utilisation de var de texte est TRES TRES déconseilllé !

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

bon.. j'ai finalement tout mis dans mon bouton envoyé car ca ne marchais pas autrement mais ca marche toujours pas...

j'obtiens bien mes valeurs... quand je fais la trace alors tout va bien jusqu'à l'envoie... qui se fait pas...

on (rollOver) {
gotoAndPlay("over");
}
on (releaseOutside, rollOut) {
gotoAndPlay("out");
}

on (release) {
var lv = new LoadVars();
lv.nom = _parent.text1;
lv.mail = _parent.text2;
lv.tel = _parent.text3;
lv.texte = _parent.text4;

trace(lv.nom);
trace(lv.mail);
trace(lv.tel);
trace(lv.texte);


// fonction générale de vérification et d'envoi du mail.
if ((lv.nom "") or (lv.tel "") or (lv.texte == "")) {
_parent.text5 = "Tous les champs ne sont pas remplis...";

} else {
trace(lv.mail.length);
if (lv.mail.length >= 7) {
if (lv.mail.indexOf("@") > 0) {
if ((lv.mail.indexOf("@")+2) < lv.mail.lastIndexOf(".")) {
if (lv.mail.lastIndexOf(".") < (lv.mail.length - 2)) {
msgCheck = lv.texte;

trace(msgCheck);

// vérification et modification des retour de ligne
for (i=0; i<lv.texte.length; i++) {
if (msgCheck.substring(i, 2) == "\r") {
msgCheck = msgCheck.substring(1, i-2) + "\n" + (msgCheck.substring(i+2, msgCheck.length - i + 2));

trace(msgCheck);

}
}
lv_texte = msgCheck;

trace(lv_texte);

lv.sendAndLoad("mail.php", lv, "post");



}else {
_parent.text5 = "Entrez un email valide";
}
}
}
}
}
}


je c je c mais ca marche pour la trace meme si j,ai pas toujours mis .text...

mon formulaire php comment je fais maintenant...

merci encore

Nace
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

nulle part t'as mis le

LoadVars.onLoad

pour vérifier si tu communiqué bien avec php !

je t'ai aussi indiqué de mettre le chemin complet du script php pour pouvoir tester depuis Flash, sinon php n'est pas interprété

pour finir tu fais comme tu veux, mais si tu suis pas les indication
qu'on te donne, mm si par coup de change ton trace marche faut pas
t'etonner !

donc utilise les nom d'occurences pour les champs textes, avec le .text
pour connaitre la valeur, le onLoad pour le LoadVars pour voir s'il y a
un retour !!!!

++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

oui mais moi je fais mes tests dur mon serveur c pour ca.. je le fais pas a partir de flash.. la raison pour laquelle je n,ai pas mis le chemin complet...

et je comprend ce que tu dit a propos de l'occurence.. je vais les changer mais ca marchais pas tantot quand je l'utilisais...

est-ce que je dois mettre _parent en avant de mes occurence car j'ai mis le code dans mon bouton finalement..

et de plus pour la fonction succes je la comprends pas... pourquoi elle est avant le sendandload?

mais je crois aussi que le prob viens de mon php...

tu me fais mettre:

lv.onLoad = function(success){
if (success){
trace ("mail envoyé");
} else {
trace ("impossible de se connecter a PHP");
}
}
lv.sendAndLoad("http://localhost/dossier/mail.php", lv, "post");

mais dans mon php... pour récupérer mes variable j'utilise quoi? un request? avec ce qui suis le lv.??

je c je suis dur d'oreille.. hehe faut pas m'en vouloir j'essai de suivre ce que tu me dit mais ca marche pas...

j'espere que ca te derange pas de continuer de m'aider.. je vais essayer avec les occurence.. mais j'aimerais bine que tu me repondre pour mes 2 questions..

merci encore.. mr..

Nace
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

une autre petite chose.. si je met

var lv:LoadVars = new LoadVars();

le :LoadVars ma trace marque undefined.. si je l'enleve (j'utilise mes noms d'occurence la) et bien ca marche.. pour la trace pkoi??

lv.nom = _parent.text_field_1.text;
lv.mail = _parent.text_field_2.text;
lv.tel = _parent.text_field_3.text;
lv.texte = _parent.text_field_4.text;

trace(lv.nom);
trace(lv.mail);
trace(lv.tel);
trace(lv.texte);


laisse moi pas tomber stp.. j,ai besoin de toi :)

Nace
Messages postés
29
Date d'inscription
jeudi 13 octobre 2005
Statut
Membre
Dernière intervention
4 décembre 2010

je m'expirme peut-etre mal..

je veux dire si je met:

var lv:LoadVars = new LoadVars();


ca marche pas undefined..

mais si je met
var lv = new LoadVars();

la ca marche pour mes occurences..