Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 19h55   #1
Membre confirmé
 
Homme Ot Othman
Administrateur système et base de données
Inscription : décembre 2007
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Ot Othman
Âge : 24
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Administrateur système et base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2007
Messages : 456
Points : 276
Points : 276
Envoyer un message via Skype™ à DBA_OCP
Par défaut Envois de données par formulaire

Bonsoir,

Voici la nouvelle situation où je me trouve.

J'ai mis sur mon site une page "Contact" si un utilisateur veut m'envoyer un mail...OK

J'ai mis 3 champs : Nom, Mail et Commentaire avec un boutton envoyer.

Je n'utilise aucune BD pour utilisé PHP ou serveur web (Apache) du coup je sais pas vraiment comment je devrais faire.

Avec php c'est assez simple avec la fonction mail(), mais avec flex je n'ai vraiment aucune idée même pas avec google ...

Merci.

PS: Quand j'ai crée mon projet je l'ai créer sans serveur web. C-à-d Application server web = None
DBA_OCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 10h13   #2
Membre habitué
 
Maxime Faye
Développeur Web
Inscription : novembre 2006
Messages : 123
Détails du profil
Informations personnelles :
Nom : Maxime Faye
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2006
Messages : 123
Points : 129
Points : 129
Envoyer un message via MSN à Maskime Envoyer un message via Skype™ à Maskime
Hello,

Pour commencer, Flex, n'est pas un langage mais un framework ActionScript3. Tu utilises du MXML pour décrire ton application, mais quand tu fais ton export, ton MXML est transformé en AS3 pour qu'il puisse être lu dans le flash player.
La conséquence de tout ça est qu'à la fin tu as un fichier swf qui est lu par le client.
Donc tu ne peux pas demander à Flex (donc le flash player) d'envoyer des mails. Ce que tu peux peut être faire c'est faire un lien de type "mailto:" et le navigateur dans lequel tu exécute le player devrait être capable de lancer le client mail de l'utilisateur (j'ai jamais essayé...).
Si tu veux garder ton système de formulaire de contact qui envoi un mail, tu es obligé de passer par une phase serveur. La cinématique va être la suivante :
1. L'utilisateur saisi les données dans le formulaire
2. lorsqu'il clique sur le bouton "soumettre", les infos sont envoyées au serveur en utilisant une des techniques suivantes : HTTP (POST ou GET), Webservices, ObjectRemoting.
3. Ton script côté serveur (visiblement tu as des affinités avec PHP donc il sera vraisemblablement en PHP) récupère ces infos.
4. Fais une passe supplémentaire de vérification de tes données d'entrée (parce que dans le fond tu ne peux pas être sûr que c'est bien ton client Flash qui te les envoient...)
5. Ton script fais l'envoi de mail avec le mail() PHP qui va bien.

Voilà normalement tu devrais mieux comprendre ce que tu fais.
__________________
Si je vous poste un bout de code pour vous aider, prenez bien en compte que je n'ai pas testé ce que je vous poste et que je vous donne les grandes lignes.
Donc ne me dites pas : "Ca marche pas ton truc, y a une erreur..."
Maskime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/12/2010, 10h14   #3
Rédacteur/Modérateur
 
Avatar de Jim_Nastiq
 
Homme Jean-Marie Macé
Ingénieur consultant, leader Flex
Inscription : avril 2006
Messages : 2 194
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie Macé
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur consultant, leader Flex
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 194
Points : 3 377
Points : 3 377
Salut,

tu peux le faire de différentes facons. Soit en passant par du javascript avec ExternalInterface, soit en passant par une solution serveur (php par exemple) avec une simple requête HTTP(HTTPRequest) ou tu passes en paramètres les infos pour l'envoi du mail depuis php.

Voila tu as toutes les billes avec les mots clés pour trouver tout ce qu'il te faut pour avancer
__________________

Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
Pensez au tag

Mon Blog sur la techno Flex
Ma page sur Developpez.com

Jim_Nastiq
Jim_Nastiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 20h01   #4
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Bonsoir

Je viens "appuyer" la suggestion de Jim_Nastiq, mais en proposant l'option de l'utilisation de HTTPService.

Simplement parce que je l'utilise régulièrement depuis mes formulaires Flex, et sans aucuns soucis.
==> Et avec la fonction "mail" spécifique à php.

Exemple dans ton cas :

Code :
1
2
3
4
5
6
7
<mx:HTTPService id="envoiMail" url="http://www.ton-site.com/ton-repertoire/ton-fichier-mail.php" useProxy="false" method="POST">
     <mx:request xmlns="">
     <Nom>{Nom.text}</Nom>
     <Mail>{Mail.text}</Mail>
     <Commentaire>{Commentaire.text}</Commentaire>
     </mx:request>
     </mx:HTTPService>
Là où il convient d'être vigilant, c'est de bien indiquer dans l'url, l'adresse absolue de ton script mail PHP, à défaut, celà ne fonctionnera pas.

Je précise qu'un simple fichier swf renvoie sans probléme les variables passées en POST au navigateur. (Et même sans utiliser un fichier de base index)
Celles-ci ne sont traitées que si le chemin qui doit exploiter ces variables POST est bien défini...en l'occurence, l'adresse absolue du fichier mail.php
Ensuite, c'est php qui prend le relais... et remplit son job .
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 01h40   #5
Membre confirmé
 
Homme Ot Othman
Administrateur système et base de données
Inscription : décembre 2007
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Ot Othman
Âge : 24
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Administrateur système et base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2007
Messages : 456
Points : 276
Points : 276
Envoyer un message via Skype™ à DBA_OCP
Voilà ce que j'ai fait avec votre aide et des recherches sur le web :

D'abord voici mon code PHP (Simple pour tester)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
	$senderName = $_POST['senderName'];
	$senderEmail =  $_POST['senderEmail'];
	$sendToEmail = "aaaaaaa@gmail.com";
	$subject = $_POST['emailSubject'];
	$emailMessage = $_POST['emailMessage'];
 
	$recipient = "$sendToEmail";
 
	$headers = "From: $senderEmail ";
	$message = "From: $senderName, \nEmail Address: $senderEmail\nSubject: $subject\n\nMessage: $emailMessage";
	$message = stripslashes($message);
	mail($recipient, $subject, $message, $headers)
?>
Je le met dans le fichier src à côté de ma page mxml...OK

Après dans ma page mxml je met un tag HTTPService comme ceci :

Code :
<mx:HTTPService id="emailService" url="mail.php" method="POST" resultFormat="xml" result="emailResult()" useProxy="false"/>
Puis dans mon bouton "send" j'appel la fonction pour envoyer ==>

Code :
<mx:Button label="Send" click="sendMail()" x="138" y="274"/>
Après je définis le code ActionScript pour gérer tout ça (je l'ai trouvé sur le web)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    <mx:Script>
	<![CDATA[
		import mx.events.ValidationResultEvent;
		import mx.controls.Alert;
 
		private function sendMail():void{
			var _senderName:String = senderName.text;
	        var _senderEmail:String = senderEmail.text;
	        var _emailMessage:String = emailMessage.text;
	        var _emailSubject:String = emailSubject.text;
 
			var evValidMail:ValidationResultEvent = mailValidator.validate();
			var evValidName:ValidationResultEvent = nameValidator.validate();
			var evValidMessage : ValidationResultEvent = mailValidator.validate();
 
			if (evValidMail.type == ValidationResultEvent.VALID
			&& evValidName.type == ValidationResultEvent.VALID
			&& evValidMessage.type == ValidationResultEvent.VALID){
				emailService.send({senderName: _senderName, senderEmail:_senderEmail, emailSubject:_emailSubject, emailMessage: _emailMessage});
			}
			else{
				resultLabel.text="There are Form errors";
				resultLabel.setStyle("styleName", "invalid");
			}
		}
 
		private function emailResult():void{
            Alert.show("Thank you for your submission ");
            clearForm();
		}
 
		private function clearForm():void{
			resultLabel.text="";
			emailSubject.text="";
			emailMessage.text="";
		}
 
	]]>
</mx:Script>
Si je valide en faisant une erreur quelconque ça me dit qu'il y a une erreur et quand je valide ça me dit que le message à bien été envoyé alors que je ne reçois rien ! (ça veut dire que les testes du script sont bien fait)

Je suis aller sur mon fichier PHP pour déboguer et j'ai mis une erreur de syntaxe dedans. Quand je recompile pour tester, ça me dit toujours que le message était bien envoyé et il ne détecte aucune erreur PHP, donc j'en conclu qu'il ne traite même pas le fichier PHP ?!
DBA_OCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 10h42   #6
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Bonjour

Comme souligné dans ma réponse, il te faut mettre le chemin absolu du fichier php qui traite le mail.

Code :
<mx:HTTPService id="emailService" url="http://www.ton-site.com/ton-repertoire/ton-fichier-mail.php"...................
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 11h29   #7
Membre confirmé
 
Homme Ot Othman
Administrateur système et base de données
Inscription : décembre 2007
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Ot Othman
Âge : 24
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Administrateur système et base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2007
Messages : 456
Points : 276
Points : 276
Envoyer un message via Skype™ à DBA_OCP
heuu le chemin absolu pour moi c'est genre c:/wamp/www/....

Je peux pas mettre de lien http !

Et j'essaye le lien absolu avec c:/wamp/..../mail.php et ça marche pas.
DBA_OCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 11h43   #8
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Tu devrais essayer sur un serveur distant. (www)
En déposant juste le fichier php et ton swf.
Pour moi c'est fonctionnel, mais en localhost, je n'ai pas testé.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 11h59   #9
Membre confirmé
 
Homme Ot Othman
Administrateur système et base de données
Inscription : décembre 2007
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Ot Othman
Âge : 24
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Administrateur système et base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2007
Messages : 456
Points : 276
Points : 276
Envoyer un message via Skype™ à DBA_OCP
Je viens de tester avec cette URL :

http://localhost/MonProjet-debug/php/mail.php

Il ne détecte pas l'erreur que je met dans mon fichier PHP.

Je vois aussi qu'il y a le fichier mail.php dans le serveur WAMP ainsi que dans le workspace de Flex...
DBA_OCP est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h13.


 
 
 
 
Partenaires

Hébergement Web