IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX] Problème flash et fonction mail() php


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut [FLASH MX] Problème flash et fonction mail() php
    Salut à tous!

    voilà j'ai un formulaire mail sous flash mx qui appelle la fonction php mail() qui se trouve sur un fichier php externe; tout marche bien sauf qu'aucun mail n'est envoyé après essai ! Il y a un problème quelque part soit dans le fla ou le php... mais je ne vois pas où !

    voici le code du formulaire flash:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    function effacer() {
    	// vider tous les champs.
     	mailAuteur = "";
    	mailMail = "";
    	mailSujet = "";
    	mailMsg = "";
    	mailStatus = "Veuillez remplir tous les champs.";
    	Selection.setFocus("mailAuteur");
    }
     
    function verifMail() {
    	// fonction classique de vérification de l'email.
    	if (mailMail.length >= 7) {
    		if (mailMail.indexOf("@") > 0) {
    			if ((mailMail.indexOf("@")+2) < mailMail.lastIndexOf(".")) {
    				if (mailMail.lastIndexOf(".") < (mailMail.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 = mailMsg;
    	// vérification et modification des retour de ligne
    	for (i=0; i<mailMsg.length; i++) {
    		if (msgCheck.substring(i, 2) == "\r") {
    			msgCheck = msgCheck.substring(1, i-2) + "\n" + (msgCheck.substring(i+2, msgCheck.length - i + 2));
    		}
    	}
    	mailMsg = msgCheck;
    }
     
    function envoyer() {
    	// fonction générale de vérification et d'envoi du mail.
    	if ((mailAuteur == "") or (mailSujet == "") or (mailMsg == "")) {
    		mailStatus = "Tous les champs ne sont pas remplis...";
    	} else {
    		if (verifMail()) {
    			verifMsg();
    			mailStatus = "Le message est en cours d'envoi...";
    			loadVariablesNum("mail.php", 0, "POST");
    			mailStatus = "Le message a été envoyé au serveur.";
    		} else {
    			mailStatus = "Entrez un email valide";
    		}
    	}
    }
     
    // vider les champs au démarrage.
    effacer();
    maintenant le code de "mail.php":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
      $msgComplet = $mailMsg;
      $msgComplet .= "Auteur: $mailAuteur\n";
      $msgComplet .= "Email : $mailMail\n";
      $msgHeaders = "From: mail\r\n";
      $msgHeaders .= "Reply-To: $mailMail\r\n"
      mail("monadresse@monhébergeur.fr", $mailSujet, $msgComplet, $msgHeaders);
    ?>
    à savoir que le formulaire fait partie d'un site hébergé chez Free.fr où la fonction mail() fonctionne bel et bien (tout en étant limitée à 1000 envois par semaine).


    voilou, quelqu'un pouvait m'éclairer là-dessus, ça serait vraiment cool
    [/code]

  2. #2
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    je ne vois pas où tu envoies tes données!
    Est-ce le loadVariablesNum("mail.php", 0, "POST"); ?
    Sauf erreur de ma part, loadVariablesNum ne permet que lire des données externes à flash.

    Passe plutôt par loadVars, cela doit être un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var tonLoadVars= new LoadVars();
    tonLoadVars.mailAuteur = escape(mailAuteur);
    tonLoadVars.mailMail = escape(mailMail);
    tonLoadVars.mailSujet = escape(mailSujet);
    tonLoadVars.mailMsg = escape(mailMsg);
    tonLoadVars.send(mail.php, resultats, "POST");

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut pb mailer
    ok, je vais essayer de cette manière

    merci !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut pb mail flash
    bon, rien ne se passe... a quoi sert la fonction escape() dans ce cas de figure ?

    merci !

  5. #5
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut Re: pb mail flash
    Citation Envoyé par proutcore
    bon, rien ne se passe... a quoi sert la fonction escape() dans ce cas de figure ?

    merci !
    A rien, ça sert quand c'est "GET".
    C'est pour convertir les chaines en chaines "URL" (ex : %20 pour l'espace ...)

    Je suis pas sûr de la syntaxe que je t'ai donné, je l'ai fait de tête sans vérifier re-
    Donc il faudrait regarder si je me suis pas gourrer quelque part. Mais je pense que la solution doit etre par là. As-tu regarder la doc pour voir s'il n'y a pas un exemple?
    Enfin il faudrait savoir si le pb vient du fait que flash n'envoie rien ou si php ne recoit rien ou ne comprends rien

    Dans ton fichier php
    ajoutes un
    puis dans flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var resultats= new LoadVars();  // Petit oubli à mon code précédant
    resultats.onLoad = function() {
      trace(this.msgComplet);
    };

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut problème réglé
    bon, j'ai réussi à régler le problème
    voici les codes finaux:

    pour le fla je reste là-dessus (à savoir que cette méthode sert aussi à transmettre des variables !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    loadVariablesNum("mail.php", 0, "POST");
    pour le php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
     
                    
                    $Adr_Envoyeur = "mon_adresse@hébergeur.com";
                    $mailheaders = "From: <flashmail>\n\n";
                    $mailheaders .= "Auteur:";
                    $mailheaders .= "$mailAuteur\n";
                    $mailheaders .= "Email:";
                    $mailheaders .= "$mailMail\n";
                    $mailheaders .= "Sujet:";
                    $mailheaders .= "$mailSujet\n";
                    $msg = "$mailMsg\n";
                    
                    mail($Adr_Envoyeur, $mailSujet, $msg, $mailheaders);
    ?>
    je pense que c'était une futilité au niveau de la syntaxe du php... étrange... Mais bon, ayé, ça marche !

  7. #7
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    C'est bon à savoir

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    ce ne serait pas plutôt : "$Adr_Receveur" le premier champs du dernier code php ?
    non parce que je ne vois nulle part l'adresse de destination du mail dans le code sinon...

    Merci de m'éclairer, j'ai testé avec 2 de mes boites, mais je n'ai pas reuc de mail :s ..
    Pourtant j'ai eu le message : "Votre mail à été envoyé au server".

    Cela peut-il venir du fait que mes fichiers (php et swf) sont stockés sur le ftp de mon IUT ?
    Parce qu'apparement la fonction mail() ne marche pas pour tous les hébergeurs si j'ai bien compris...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème fonction mail php
    Par mikael2235 dans le forum Langage
    Réponses: 4
    Dernier message: 25/10/2010, 20h37
  2. Réponses: 7
    Dernier message: 10/06/2006, 14h31
  3. Réponses: 5
    Dernier message: 30/03/2006, 14h52
  4. Réponses: 49
    Dernier message: 13/03/2006, 11h25
  5. [Mail] problème avec la fonction mail()
    Par artotal dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2005, 03h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo