*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
22 Mai 2012 à 10:20:01

Connexion avec identifiant, mot de passe et durée de la session



 

envoi formulaire par mail


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Fil de discussion: envoi formulaire par mail  (Lu 591 fois)
rafa24
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
envoi formulaire par mail
« le: 15 Juillet 2011 à 09:02:22 »

Bonjour à tous,

voila je conmmence à créer un site. Pour un formulaire j'ai suivie le tuto correspondant et j'ai un message d'erreur qui apparait lors de lenvoi du formulaire.

Voici mon code html:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Mon blog</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
    </head>

<body>

<?php include('en_tete.php'); ?>

<?php include('menu.php'); ?>

<h1> Prise de rendez-vous.</h1>

<form method='post' action='rdv_post.php'>
<p>
<label for='nom' class='nom'> Nom : </label>
<input type='text' name='nom'/> <br/> <br/>

<label for='prenom' class='prenom'>Prénom : </label>
<input type='text' name='prenom'/> <br/> <br/>

<label for='tel' class='tel'> Téléphone : </label>
<input type='text' name='tel' maxlength='10'/> <br/> <br/>

<label for='mail' class='mail'> E-mail : </label>
<input type='text' name='mail'/> <br/> <br/>

<label for='texte' class='texte'> Proposition de rendez-vous...</label>
<textarea name='rdv' rows='8' cols='45' >
Indiquez la date du rendez-vous que vous souhaitez....
</textarea> <br/> <br/>

<input type='submit' name='valider'/>
</p>
</form>

<?php include('pied_page.php'); ?>
</body>
</html>

Et voici le php qui va avec:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Mon blog</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
    </head>

<body>
<?php
$msg_erreur 'Erreur: Certains champs ne sont pas renseignés: ';

$msg_ok 'Votre demande a été prise en compte. Nous vous contacterons prochainement.';
$message $msg_erreur;


// verif des champs
if(empty($_POST['nom']))
$message .= 'Votre nom';

if(empty($_POST['prenom']))
$message .= 'Votre prenom';

if(empty($_POST['tel']))
$message .= 'Votre numero de téléphone';

if(empty($_POST['mail']))
$message .= 'Votre adresse mail';

if(empty($_POST['texte']))
$message .= 'Votre message';

if(strlen($message) > strlen($msg_erreur))
{
echo $message;
}
else
{
foreach($_POST as $index => $valeur)
{
$$index stripslashes(trim($valeur));
}
}

// preparation de l'en-tete du mail
$mail_entete "MIME-Version: 1.0\r\n";
$mail_entete .= 'From: {$_POST['nom']}'
.'<{$_POST['mail']}>/r/n';
$mail_entete .= 'Reply-To: '.$_POST['mail'].'/r/n';
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' phpversion()."\r\n";

// corps du mail
$mail_corps 'Message de : $nom $prenom/n';
$mail_corps 'Numero de téléphone : $tel/n';
$mail_corps 'Adresse mail : $mail/n';
$mail_corps 'Son message : $texte';

// envoi du mail
if(mail(MAIL_DESTINATAIREMAIL_SUJET$mail_corps$mail_entete))
{
//le mail a été bien expedié
echo $msg_ok;
}
else
{
//mail pas envoyé
echo 'Une erreur est survenue lors de l\'envoi du mail.';
}
?>

</body>
</html>

J'ai besoin d'aide svp merci
Journalisée
mathias
Rédacteur Modérateur
Intarissable
*****

Points gagnés: 3
Messages: 1063



Voir le profil
Re : envoi formulaire par mail
« Répondre #1 le: 16 Juillet 2011 à 09:34:58 »

Bonjour;

Pouvez vous nous communiquer l'erreur qui résulte de votre script.

Cordialement.
Journalisée

Administrateur système et réseau

Webmaster
rafa24
Nouveau membre
*

Points gagnés: 0
Messages: 2


Voir le profil
Re : envoi formulaire par mail
« Répondre #2 le: 18 Juillet 2011 à 06:39:05 »

bonjour,
alors le message d'erreur:

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\test\rdv_post.php on line 47

la ligne correspondante à la ligne 47:

Code:
$mail_entete .= 'From: {$_POST['nom']}' .'<{$_POST['mail']}>/r/n';

merci d'avance pour votre aide.

Cordialement
Journalisée
mathias
Rédacteur Modérateur
Intarissable
*****

Points gagnés: 3
Messages: 1063



Voir le profil
Re : envoi formulaire par mail
« Répondre #3 le: 21 Juillet 2011 à 13:55:51 »

Code:
$$index = stripslashes(trim($valeur));
Vous avez deux $$ sur cette ligne alors que je pense qu'un seul suffit Smile

A essayer. Je n'ai pas eu le temps de lire tout le code. C'est la première chose qui m'a frappé. Ouch' Smile
Journalisée

Administrateur système et réseau

Webmaster
Damien
Rédacteur Admin
Intarissable
*****

Points gagnés: 5
Messages: 2852



Voir le profil WWW
Re : envoi formulaire par mail
« Répondre #4 le: 23 Juillet 2011 à 11:02:47 »

Bonjour,

Vous avez plusieurs choses qui ne vont pas dans ce bloc de code :

Code:
// preparation de l'en-tete du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= 'From: {$_POST['nom']}'
.'<{$_POST['mail']}>/r/n';
$mail_entete .= 'Reply-To: '.$_POST['mail'].'/r/n';
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// corps du mail
$mail_corps = 'Message de : $nom $prenom/n';
$mail_corps = 'Numero de téléphone : $tel/n';
$mail_corps = 'Adresse mail : $mail/n';
$mail_corps = 'Son message : $texte';


  • La chaine "\r\n" sert à faire un retour chariot (retour à la ligne). Elle ne peut pas être contenue dans des simples quotes '\r\n'. Il faut absolument des guillemets.
  • D'ailleurs la syntaxe est bien \r\n : ce sont des antislashes, et non des slashes (/r/n) comme vous l'écrivez à certains endroits.
  • Vous avez des variables php contenues dans des chaînes de caractères qui utilisent des simple quotes. En php, une variable peut être contenue dans une chaîne de caractère qui utilise des guillemets uniquement. Attention à ça, '$var' et "$var" ne produise pas le même effet en php.

Votre bloc de code devrait mieux fonctionner en faisant quelque chose comme ça :

Code:
// preparation de l'en-tete du mail
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} <{$_POST['mail']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['mail']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// corps du mail
$mail_corps = "Message de : $nom $prenom\n";
$mail_corps = "Numero de téléphone : $tel\n";
$mail_corps = "Adresse mail : $mail\n";
$mail_corps = "Son message : $texte";
Journalisée

Cordialement,
Damien

Tutoriels informatique
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Powered by SMF 1.1.12 | SMF © 2006, Simple Machines LLC

Page générée en 0.147 secondes avec 18 requêtes.