code php - PHP - Programmation
Marsh Posté le 23-04-2010 à 23:51:02
Avant de te lancer dans du flash vérifie que t'ai les bonnes bases html/php avant car sinon ça va être une prise de tête.
Marsh Posté le 24-04-2010 à 14:55:18
ReplyMarsh Posté le 24-04-2010 à 16:11:43
A mon avis il doit falloir construire sa requete ou utiliser un objet flash qui va le faire pour nous ...
Marsh Posté le 25-04-2010 à 01:27:26
ReplyMarsh Posté le 28-04-2010 à 10:00:13
<code>
<?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 utf8_encode("erreurPHP=".$erreurPHP);
else
{
$to = "contact@virgincrea.fr";
$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 utf8_encode("erreurPHP=".$erreurPHP);
}
?>
</code>
Marsh Posté le 28-04-2010 à 10:01:13
Apparemment c'est mon code php qui ne va pas, merci d'avance
Marsh Posté le 28-04-2010 à 18:31:23
quand tu poste à partir de ton flash, tu l'envoi comment POST OU GET ?
Quand tu poste à partir de ton flash, rajoute dans ton code PHP print_r($_REQUEST);
pour voir si les variables passe bien et donne nous le résultat.
Marsh Posté le 28-04-2010 à 22:03:27
Merci de vos reponses,
je comprend pas tres bien ou mettre REQUEST alors je vous mon le code que j'ai inserer dans flash :
import mx.controls.TextInput;
import mx.controls.TextArea;
import mx.controls.Button;
var tiNom:TextInput = this.nom_ti;
var tiPrenom:TextInput = this.prenom_ti;
var tiEmail:TextInput = this.email_ti;
var taCommentaire:TextArea = this.message_ta;
var taSortie:TextArea = this.sortie_ta;
var mcEnvoyer:Button = this.envoyer_mc;
taSortie["depthChild0"]._visible = false;
taSortie.setStyle("color", "0xB13501" );
taSortie.setStyle("fontStyle", "italic" );
taSortie.label.selectable = false;
tiNom.tabIndex = 1;
tiPrenom.tabIndex = 2;
tiEmail.tabIndex = 3;
taCommentaire.tabIndex = 4;
var nom:String;
var prenom:String;
var email:String;
var commentaire:String;
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
{
nom = tiNom.text;
prenom = tiPrenom.text;
email = tiEmail.text;
commentaire = taCommentaire.text;
var erreurs:String = "";
if (nom == "" ) erreurs += "Merci de remplir le champ 'nom'" + newline;
if (prenom == "" ) erreurs += "Merci de remplir le champ 'prénom'" + newline;
if (email == "" ) erreurs += "Merci de remplir le champ 'email'" + newline;
else
{
var atIndex:Number = email.indexOf("@" );
var dotIndex:Number = email.indexOf(".", atIndex);
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 += "Nom : " + nom + "\r\n";
message += "Prénom : " + prenom + "\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 += "<p>Nom : " + nom + "<br />";
message += "Prénom : " + prenom + "<br />";
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 = prenom + " " + nom;
envoyeur.mailReponse = email;
receveur.onLoad = onMailEnvoye;
envoyeur.sendAndLoad("php/envoyer_mail.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);
}
}
Marsh Posté le 29-04-2010 à 13:00:45
A priori dans ton code flash tu construit un mail que tu tente ensuite de passer à PHP qui à son tour va lui aussi reformater les données (qu'il ne trouvera sans doute pas) pour ensuite envoyer le mail. ouf !! c'est du lourd
il faut faire un choix ....
soit tu bosse en flash et voila
soit tu fait avec PHP, mais là t'en ai loin...
Marsh Posté le 29-04-2010 à 13:12:19
ensuite je ne suis pas expert en flash ...
mais 2 minutes sur google et voila :
http://www.pixtiz.com/fr/blog/flash/communication-flash-php-mysql-tutorial-loadvars.php
Marsh Posté le 03-05-2010 à 15:48:10
Re bonjour,
apres avoir lu vos message et essayé pas mal de tuto, je ne comprend plus le message de "stef_dobermann".
Dans tous les tutos de formulaire flash, il me dise de créer un fichier php, donc ce n'est pas soit flash soit php mais les 2!?
Marsh Posté le 03-05-2010 à 18:32:19
ben je ne suis pas un pro flash, mais ca doit fonctionner comme suit :
- flash envoi le formulaire à PHP
- PHP traite les données reçu
simple non ?
Marsh Posté le 23-04-2010 à 16:36:12
Bonjour,
j'ai creer un formulaire flash et php, mais le bouton envoyer ne m'envoie rien!
Je suis passer par dreamweaver pour le publier, y a t il un code a rajouter ds head pour appeler mon php??
Merci d'avance