Formulaire flash et PHP

Fermé
Toinousp - 27 févr. 2008 à 19:56
 olivier - 6 sept. 2008 à 22:49
Bonjour,
Je viens de faire ce tutoriel : http://wiki.mediabox.fr/tutoriaux/flash/formulaire_flash_php
Et j'ai donc réaliser la pertie flash sans aucun problème.
J eme lance donc dans la partie PHP et là tout ce passe pour le mieux jusqu'au test ou ça me met "erreur PHP" dans la zone de sortie.
Je ne sais pas pourquoi car j'ai fait du copier coller !! Mais j'ai mit un envoi à deux adresse email est-ce pour cela ??
Voici mon code PHP :
<?php
function decoderEncoderHtml($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // &#8730;©limine les anti-slashs d'&#8730;©chappement
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // &#8730;©limine les '\n', '\r', '\t' etc
        return $texte;
}
 
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // &#8730;©limine les anti-slashs d'&#8730;©chappement
        return $texte;
}
 
$erreurPHP="";
 
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 = Moi <toinousp@gmail.COM>, Réponse automatique <contact@toinousp.fr>;
	$sujet = decoder($sujet);
	$expediteur = decoder($expediteur);
	$messagehtml = decoderEncoderHtml($messageHtml);
	$messageTexte = decoder($messageTexte);
	
	 //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------
 
     $frontiere = '-----=' . md5(uniqid(mt_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 = '--'.$frontiere."\n";
     $message .= 'Content-Type: text/plain; charset=iso-8859-1'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\r\n\r";
     $message .= $messageTexte."\n";
 
     
	 //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere."\n";
     $message .= 'Content-Type: text/html; charset=iso-8859-1'."\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&#8730;®me lors de l'envoi du mail";
		
	}
	echo utf8_encode("erreurPHP=".$erreurPHP);
}
?>


Je vous remercie d'avance pour vos réponse.
s'il vous manque des infos demandez moi !!
Cordialement
Toinousp
A voir également:

7 réponses

Bonjour

S'il te met "erreurPHP=" sans rien d'autre après, c'est justement que tout est ok.
j'ai fait du copier coller ça n'est absolument pas une garantie de succès ! Surtout pas si tu le fais sans comprendre ce que tu recopies.
0
Je ne reçoit pourtant aucun mail !
0
Bonsoir

As-tu fait un echo $to ,' ', $sujet,'<BR>'; juste avant l'envoi du mail pour vérifier tes paramètres ?
en particulier, ton
$to = Moi <toinousp@gmail.COM>, Réponse automatique <contact@toinousp.fr>;

est erronné : il manque des ' ' ou des " "
Je ne sais pas comment ça se comporte sur MAC mais avec windows, les adresses ne peuvent être que sous la forme toinousp@gmail.COM sans toutes les autres fioritures
Normalement, les lignes d'en-tête sont séparées par des "\r\n" et non pas seulement des \n
0
Bonjour,
J'ai donc changer mon script php ce qui me donne ceci :
<?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="";

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\r\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\r\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\r\n";
 
if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
	$to = "toinousp@gmail.com","contact@toinousp.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(mt_rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\r\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\r\n";
     $headers .= 'MIME-Version: 1.0'."\r\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\r\n";
	 $headers .= 'Content-Transfer-Encoding: 8bit';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     //$message = 'This is a multi-part message in MIME format'."\n\r";

     $message = '--'.$frontiere."\n\r";
     $message .= 'Content-Type: text/plain; charset=UTF-8'."\n\r";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\r\n\r";
     $message .= $messageTexte."\n\r";

     
	 //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere."\r\n";
     $message .= 'Content-Type: text/html; charset=UTF-8'."\r\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\r\n\r\n";
     $message .= $messageHtml."\r\n\r\n";

     $message .= '--'.$frontiere."\r\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);
}
?>


Mais il y a toujours "Erreur PHP:"
Et je ne reçoit aucun mail
0
bonjour,

je me trouve confronter au même problème, avec ce même script qui paraissait pourtant alléchant. Avez vous réussi à résoudre le problème?

de l'eau à couler sous les ponts depuis ce post, mais au cas où...

merci ++
0
Dens > beijhun
5 sept. 2008 à 10:10
Salut,

J'ai aussi le même soucis avec le même tuto et me casse la tete depuis 3 jours pour trouver un foutu formulaire en flash qui fonctionne.

As-tu trouvé une solution, si oui merci de tes pistes ou de ton script

Merci d'avance
0
beihjun > Dens
6 sept. 2008 à 22:23
ce script a fini par fonctionner lorsque j'ai souscrit à un hébergement payant chez ovh où ce langage était supporté. tout ce que je peux te dire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir

$to = "toinousp@gmail.com","contact@toinousp.fr"; n'est guère mieux...
Ni fait de 'echo' de tes variables pour vérifier qu'elles ont bien les valeurs que tu crois...
0
Bonjour, la première chose à vérifier est que l'hébergeur n'a pas désactiver la fonction mail native de php.
Pour ça un php_info(), si je ne me trompe pas te révèlera la configuration du serveur et les fonctions prises en charge.
Certains font le choix de désactiver mail() car il pourrait être détourné de sons usage et être utilisé dans dans script a vocation de spamming.
Cordialement
0
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
1 mars 2008 à 22:47
b'soir... $to = "toinousp@gmail.com; contact@toinousp.fr"; ira déjà mieux
-1