probleme recuperation variable de formulaire vers mail
Posté : 09 juil. 2007, 15:44
Bonjour,
pour etre plus exact, ma variable, à la base vient de Flash qui est envoyée en POST vers un formulaire en PHP qui envoie un mail ensuite. Cette variable s'appelle $nomOffre. En faisant un echo, pas de souci, elle s'affiche bien sur le formulaire. Mais je souhaite la mettre dans le sujet du mail et là, rien.
J'ai testé un peu de tout pour régler le probleme.
Normalement, je devrais avoir une ligne de code equivalente à celle ci (ligne 104)
pour etre plus exact, ma variable, à la base vient de Flash qui est envoyée en POST vers un formulaire en PHP qui envoie un mail ensuite. Cette variable s'appelle $nomOffre. En faisant un echo, pas de souci, elle s'affiche bien sur le formulaire. Mais je souhaite la mettre dans le sujet du mail et là, rien.
J'ai testé un peu de tout pour régler le probleme.
Normalement, je devrais avoir une ligne de code equivalente à celle ci (ligne 104)
$subject = 'Offre : '.$_POST['nomOffre'].' Candidature de '.$_POST['prenom'].' '.$_POST['nom'];
Voici le code du formulaire en PHP :<?php
$decompurl = pathinfo( $_SERVER['REQUEST_URI'] );
$baseurl = $decompurl['basename'];
if ( substr_count( $baseurl, '?' ) === 0 ) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de candidature</title>
<style type="text/css" media="screen, projection"><!--
body
{
background-color: #FF9900;
}
body,td,th
{
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
form
{
width: 612px;
margin: 0 auto;
text-align: center;
}
form *
{
text-align: left;
}
fieldset
{
border: 0;
}
legend
{
font-weight: bold;
text-indent: 150px;
}
div
{
position: relative;
margin: -45px 0 0 24px;
float: right;
width: 300px;
padding: 5px 0;
}
div.left
{
margin: 0;
clear: both;
float: left;
}
div.right
{
margin: 10px 0 0 0;
clear: both;
float: right;
}
label
{
display: block;
}
textarea
{
width: 430px;
}
-->
</style>
<!--[if IE]><style type="text/css" media="screen">
legend
{
text-indent: 90px;
color: #000;
}
div
{
margin-right: 20px;
}
div.right
{
margin: 160px 36px 0 0;
}
</style><![endif]-->
</head>
<body>
<?php
}
if ( isset( $_POST['submit'] ) ) {
///////////////////
// CONFIGURATION //
///////////////////
$to = '[email protected]' ; // Mettez ici, là ou les adresses emails ( Séparées d'une virgule ) auquels le mail doit être envoyé.
$subject = ' Candidature de '.$_POST['prenom'].' '.$_POST['nom']; // Mettez ici le sujet de votre mail
$format = 'html'; // Mettez ici le format de l'email, pour html mettez 'html', pour le format texte mettez 'texte'
//////////////////////////////////////
// Configuration de l'envoi du mail //
//////////////////////////////////////
$foncmail = 'mail'; // Si votre hébergeur permet la fonction mail mettez 'mail', sinon vous pouvez utiliser smtp en mettant 'smtp'
/////////////////////////////////////////////////////////////////////////////////////
// Configuration SMTP ( Si vous n'utilisez pas SMTP ne pas configurer ces champs ) //
/////////////////////////////////////////////////////////////////////////////////////
$hostsmtp = ''; // Mettez ici l'hôte SMTP par exemple 'smtp.free.fr'
$portsmtp = '25'; // S'il faut utiliser un autre port que le port 25 spécifiez le ici
$authsmtp = false; // Si le serveur demande une authentification laissez true, s'il n'y a pas besoin d'authentification mettez false et
// ignorez les champs suivant
$usersmtp = ''; // Mettez ici le login d'accés au serveur SMTP. Par exemple : 'toto'
$passmtp = ''; // Mettez ici votre mot de passe d'accés au serveur SMTP. Par exemple : 'Mon_mot_de_pass'
// Dans body vous avez le corps du mail, ici nous mettons les variables du champs commentaire $comment,
// vous pouvez mettre bien entendu plusieurs variables avec du texte au format html ou texte selon votre choix.
// Attention ! Comme vous le voyez dans l'exemple, le texte doit être entre des Appostrophes , alors que les Variable
// venant du formulaire doivent être en dehors et de la forme .$_POST['nom']. ( Ne pas oublier les points )
// Attention ! Si vous mettez une appostrophe dans le texte elle doit être précédée de \ Exemple :
// Si je veus écrire : J'y vais , il faut mettre : J\'y vais.
$body = '<html>
<head>
<title>EXmail 1.1</title>
</head>
<body>
<strong>Nom : </strong>'.$_POST['nom'].'<br>
<strong>Prenom : </strong>'.$_POST['prenom'].'<br>
<strong>Date de naissance : </strong>'.$_POST['naissance'].'<br>
<strong>Situation maritale : </strong>'.$_POST['situation'].'<br>
<strong>Tel : </strong>'.$_POST['telephone'].'<br>
<strong>Email : </strong>'.$_POST['email'].'<br>
<strong>Code postal : </strong>'.$_POST['postal'].'<br>
<strong>Ville : </strong>'.$_POST['ville'].'<br>
<strong>Date inscription ANPE : </strong>'.$_POST['anpe'].'<br>
<strong>Poste recherché : </strong>'.$_POST['poste'].'<br>
<strong>Motivations : </strong>'.$_POST['motivations'].'<br>
</body>
</html>';
///////////////////////////////////////////////
// FIN DE LA CONFIGURATION //
///////////////////////////////////////////////
function CheckEmail( $email )
{
return ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$email );
}
///////////////////
// CONFIGURATION //
///////////////////
// Si l'adresse email n'est pas valide, on met un message d'erreur
if( !CheckEmail( $_POST['email'] ) )
{
$error[] = '<center><p class="erreur">Votre adresse Email n\'est pas valide !</p></center>';
}
// On vérifie que les champs obligatoires sont remplis, s'il n'est pas rempli on dirige vers un message d'erreur, pour vérifier d'autres champs
// Du formulaire que vous allez créer vous n'avez qu'à recopier les deux lignes si dessous et de remplacer la variable $_POST['nom'] par celle
// de la partie du formulaire que vous voulez rendre obligatoire. Ainsi que le message en html que vous voulez mettre en cas d'erreur.
if ( empty( $_POST['nom'] ) )
{
$error[] = '<center><p class="erreur">Vous n\'avez pas mis votre nom !</p></center>';
}
if ( empty( $_POST['prenom'] ) )
{
$error[] = '<center><p class="erreur">Vous n\'avez pas mis votre prénom !</p></center>';
}
if ( empty( $_POST['naissance'] ) )
{
$error[] = '<center><p class="erreur">Vous n\'avez pas mis votre date de naissance !</p></center>';
}
if ( empty( $_POST['poste'] ) )
{
$error[] = '<center><p class="erreur">Vous n\'avez pas mis le poste que vous recherchiez !</p></center>';
}
if ( empty( $_POST['motivations'] ) )
{
$error[] = '<center><p class="erreur">Vous n\'avez pas mis vos motivations!</p></center>';
}
///////////////////////
// FIN CONFIGURATION //
///////////////////////
if ( isset( $_FILES['upload_localfile']['tmp_name'] ) and is_uploaded_file( $_FILES['upload_localfile']['tmp_name'] ) ) {
$destination = dirname(__FILE__).'/upload/'.$_FILES['upload_localfile']['name'];
if ( move_uploaded_file( $_FILES['upload_localfile']['tmp_name'], $destination ) ) {
$uploadinfo = '<center><p class="erreur">Upload Réussi</p></center>';
}
}
else {
$error[] = '<center><p class="erreur">Pas de fichier joint ! <p></center>';
$uploadinfo = '<center><p class="erreur">Pas de fichier joint ! <p></center>';
}
if ( !isset( $error ) or empty ( $error ) )
{
$reqclass = dirname(__FILE__).'/class.phpmailer.php';
require_once ( $reqclass );
$mail = new PHPmailer();
if ( $foncmail === 'mail' ) {
$mail->IsMail();
}
elseif ( $foncmail === 'smtp' ) {
$mail->IsSMTP();
$mail->Host = $hostsmtp;
$mail->Port = $portsmtp;
$mail->SMTPAuth = $authsmtp;
$mail->Username = $usersmtp;
$mail->Password = $passmtp;
}
if ( $format === 'html' ) {
$mail->IsHTML(true);
}
elseif ( $format === 'texte' ) {
$mail->IsHTML(false);
}
$mail->From = $_POST['email'];
$mail->FromName = $_POST['nom'];
$mail->AddAddress( $to );
$mail->Subject = $subject;
$mail->Body = stripslashes( $body );
if ( isset( $destination ) ){
$mail->AddAttachment( $destination );
}
if(!$mail->Send()){
echo '<center><p class="erreur">Erreur fonction mail() :</p></center>';
echo $mail->ErrorInfo;
}
else{
echo $uploadinfo;
echo '<center><p class="erreur">Formulaire envoyé !</p></center>';
}
unset($mail);
}
else {
foreach ( $error as $errormsg ) {
echo $errormsg;
}
echo '<center><p class="erreur">Le Formulaire n\'a pas été envoyé</p>
<p class="erreur">Veuillez recommencer !</p></center>';
}
if ( isset( $destination ) ){
unlink( $destination );
}
}
if ( ( ( isset( $error ) or !empty ( $error ) ) and isset( $_POST['submit'] ) ) or !isset( $_POST['submit'] ) ) {
/////////////////////////////////////////////////
// Le code HTML du formulaire //
/////////////////////////////////////////////////
?>
<form action="<?php $_SERVER['REQUEST_URI'] ?>" method="post" enctype="multipart/form-data">
<fieldset>
<legend><?php echo 'Offre : '.$_POST['nomOffre'].'<br>'?></legend>
<div class="left">
<label for="nom">Nom :</label>
<input type="text" id="nom" name="nom" />
</div>
<div>
<label for="prenom">Prénom :</label>
<input type="text" id="prenom" name="prenom" />
</div>
<div class="left">
<label for="naissance">Date de naissance :</label>
<input name="naissance" id="naissance" type="text" value="00/00/00" size="8" maxlength="8" />
</div>
<div>
<label for="situation">Situation maritale :</label>
<input type="text" id="situation" name="situation" />
</div>
<div class="left">
<label for="telephone">Tél :</label>
<input id="telephone" name="telephone" type="text" size="10" />
</div>
<div>
<label for="email">Email :</label>
<input type="text" id="email" name="email" />
</div>
<div class="left">
<label for="postal">CP :</label>
<input id="postal" name="postal" type="text" size="5" />
</div>
<div>
<label for="ville">Ville :</label>
<input type="text" id="ville" name="ville" />
</div>
<div class="left">
<label for="anpe">Inscription ANPE :</label>
<input id="anpe" name="anpe" type="text" value="00/00/00" size="8" maxlength="8" />
</div>
<div>
<label for="poste">Poste recherché :</label>
<input type="text" id="poste" name="poste" />
</div>
<div class="left">
<label for="upload_localfile">Joindre CV :</label>
<input id="upload_localfile" name="upload_localfile" type="file" />
</div>
<div class="left">
<label for="motivations">Motivations :</label>
<textarea name="motivations" id="motivations" cols="59" rows="5"></textarea>
</div>
<div class="right">
<input type="reset" name="reset" value="Effacer" />
<input type="submit" name="submit" value="Envoyer" />
</div>
</fieldset>
</form>
<?php
/////////////////////////////////////////////////
// Fin du code HTML du formulaire //
/////////////////////////////////////////////////
}
if ( substr_count( $baseurl, '?' ) === 0 ) {
?>
</body>
</html>
<?php
}
?>