Bonjour à tous,
Je suis chargée de faire le site internet de ma promo et jusque là tout va bien. Seul hic, c'est que je ne connais que très peu le PHP et pour faire mon formulaire de contact, j'en ai bien besoin!
Alors j'ai bidouillé un peu, en regardant à droite à gauche sur internet mais malheureusement, je coince toujours et je suis incapable de voir où donc c'est pour ça que je demande votre aide.
L'erreur qui ressort lors de l'envoi de mon formulaire et une erreur au niveau de la fonction mail(): Warning: mail() expects parameter 1 to be string, array given.
L'idée de mon formulaire est de pouvoir sélectionner un ou plusieurs contact et d'envoyer le mail à ces contacts sélectionnés.
Voici donc mon code HTML pour le formulaire puis le code PHP.
<div id="form">
<form id="contact_form" name="form_contact" method="post" action="traitement.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom:</label> </p>
<p><input type="text" id="nom" name="nom" placeholder="nom" required tabindex="1"/></p>
<p><label for="nom">Prénom:</label> </p>
<p><input type="text" id="prenom" name="prenom" placeholder="prenom" required tabindex="2"/></p>
<p><label for="email">Votre email:</label></p>
<p><input type="text" id="email" name="email" placeholder="[email protected]" required tabindex="3"/> </p>
<p><label for="destinataire">Destinataire :</label></p>
<p> <select multiple name="destinataire" id="destinataire" size="6">
<option value="claire">Claire</option>
<option value="mathieu">Mathieu</option>
</select></p>
</fieldset>
<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet:</label></p>
<p><input type="text" id="objet" name="objet" placeholder="L'objet de votre mail" required tabindex="5" /> </p>
<p><label for="message">Votre message:</label></p>
<p><textarea name="message" id="message" tabindex="6" placeholder="Votre mail"> </textarea> </p>
<p><input type="submit" id="envoi" name="envoi" tabindex="7" value=""/></p>
</fieldset>
</form>
</div>
<?php
$destinataire = array(
'claire' => '[email protected]',
'mathieu' => '[email protected]',
);
$cible = $destinataire;
$copie = 'non'; // 'oui' ou 'non'
$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href='monsite/contact'>ici</a></div>";
$message_non_envoye = "<div class='msg'>L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.</div>";
$message_erreur_formulaire = "<div class='msg'>Vous devez d'abord <a href='monsite/contact'>envoyer le formulaire</a>.</div>";
$message_formulaire_invalide = "<div class='msg'>Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.</div>";
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
if (($nom != '') && ($email != '') && ($objet != '') && ($message != '') && ($prenom != ''))
{
// Envoi du mail
if (mail($cible,$objet,$message))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
}
}
else
{
// une des 4 variables (ou plus) est vide ...
//echo htmlentities($objet);
echo '<p>'.$message_formulaire_invalide.'<a href="...">Retour au formulaire</a></p>'."\n";
}
} // fin du if (!isset($_POST['envoi']))
function Rec($text)
{
$text = trim($text); // supprime les espaces avant et après le texte
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
}
function IsEmail($email) {
return (preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i',$email)) ? true : false;
}
?>
Je vous remercie d'avance pour votre précieuse aide!
Claire
Bonjour à tous,
Je suis chargée de faire le site internet de ma promo et jusque là tout va bien. Seul hic, c'est que je ne connais que très peu le PHP et pour faire mon formulaire de contact, j'en ai bien besoin!
Alors j'ai bidouillé un peu, en regardant à droite à gauche sur internet mais malheureusement, je coince toujours et je suis incapable de voir où donc c'est pour ça que je demande votre aide.
L'erreur qui ressort lors de l'envoi de mon formulaire et une erreur au niveau de la fonction mail(): Warning: mail() expects parameter 1 to be string, array given.
L'idée de mon formulaire est de pouvoir sélectionner un ou plusieurs contact et d'envoyer le mail à ces contacts sélectionnés.
Voici donc mon code HTML pour le formulaire puis le code PHP.
[html]<div id="form">
<form id="contact_form" name="form_contact" method="post" action="traitement.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom:</label> </p>
<p><input type="text" id="nom" name="nom" placeholder="nom" required tabindex="1"/></p>
<p><label for="nom">Prénom:</label> </p>
<p><input type="text" id="prenom" name="prenom" placeholder="prenom" required tabindex="2"/></p>
<p><label for="email">Votre email:</label></p>
<p><input type="text" id="email" name="email" placeholder="
[email protected]" required tabindex="3"/> </p>
<p><label for="destinataire">Destinataire :</label></p>
<p> <select multiple name="destinataire" id="destinataire" size="6">
<option value="claire">Claire</option>
<option value="mathieu">Mathieu</option>
</select></p>
</fieldset>
<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet:</label></p>
<p><input type="text" id="objet" name="objet" placeholder="L'objet de votre mail" required tabindex="5" /> </p>
<p><label for="message">Votre message:</label></p>
<p><textarea name="message" id="message" tabindex="6" placeholder="Votre mail"> </textarea> </p>
<p><input type="submit" id="envoi" name="envoi" tabindex="7" value=""/></p>
</fieldset>
</form>
</div>[/html]
[php]<?php
$destinataire = array(
'claire' => '
[email protected]',
'mathieu' => '
[email protected]',
);
$cible = $destinataire;
$copie = 'non'; // 'oui' ou 'non'
$message_envoye = "<div class='msg'> Votre message nous est bien parvenu . Nous y répondrons dans les plus brefs délais. Pour retourner au site cliquez <a href='monsite/contact'>ici</a></div>";
$message_non_envoye = "<div class='msg'>L'envoi du mail a échoué, veuillez réessayer s'il vous plait ou utiliser une méthode traditionnelle.</div>";
$message_erreur_formulaire = "<div class='msg'>Vous devez d'abord <a href='monsite/contact'>envoyer le formulaire</a>.</div>";
$message_formulaire_invalide = "<div class='msg'>Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.</div>";
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
if (($nom != '') && ($email != '') && ($objet != '') && ($message != '') && ($prenom != ''))
{
// Envoi du mail
if (mail($cible,$objet,$message))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
}
}
else
{
// une des 4 variables (ou plus) est vide ...
//echo htmlentities($objet);
echo '<p>'.$message_formulaire_invalide.'<a href="...">Retour au formulaire</a></p>'."\n";
}
} // fin du if (!isset($_POST['envoi']))
function Rec($text)
{
$text = trim($text); // supprime les espaces avant et après le texte
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
}
function IsEmail($email) {
return (preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i',$email)) ? true : false;
}
?>[/php]
Je vous remercie d'avance pour votre précieuse aide!
Claire