Aller au contenu

Créer un formulaire de contact php anti-spam (captcha)


Sujets conseillés

  • Réponses 119
  • Créé
  • Dernière réponse

Contributeurs actifs dans ce sujet

Contributeurs actifs dans ce sujet

Posté

ça y est ! j'ai fait un essai : ça marche nickel !!!

Donc merci à Byc et Alphega !!! :thumbsup:

Juste une question : comment spécifier dans le php une et une taille particuliére, du verdana par exemple ?

Posté

On ne peut pas spécifier la taille d'une police de caractères en PHP, par contre tu peux utiliser CSS en faisant par exemple <span style='font-size: 16px;'>ton mot</span>. J'ai utilisé la balise span, ça peut être <div>, <p>, etc... et tu peux mettre aussi à la place de "style='font-size: 16px;'" "class='toto'" ou "id='toto'" (où toto sera défini sur ta feuille CSS). Si tu souhaites en savoir plus sur le CSS, je te conseille de faire un tour sur Alsacreations.

Posté (modifié)

Meric pour le lien vers alsacréation !!! ;)

Pour peaufiner mon formulaire, je souhaite inclure une checkbox ou une boite déroulante avec "oui" (valeur par défaut) et "non" comme valeurs possibles pour donner le choix au visituer de s'inscrire à ma newsletter.

Je souhaite récupérer dans l'email son message - ce qui est normal - mais également une valeur comme "newsletter : oui" afin de m'indiquer que la personne souhaite s'inscrire...

J'ai trouvé un code php pour cela mais je tourne autour du pot pour le faire fonctionner :


<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Your email :</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Subject :</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Your message :</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p><label for="newsletter">Newsletter :</label>
[b]<input type="checkbox" name="newsletter[]" value="yes"><?php
if (isset($_POST["newsletter"])){
echo "Choix utilisateur : ",$choix,"<br>";
}
?>[/b]
<p>Résultat du calcul:</p>
<?php antispam_ins(); ?>
<p><input type="submit" name="envoyer" value="Send" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "Return-Path: ". $email_webmaster . "\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"],"][b],$_POST["newsletter"],[/b]$entete)){
// mail envoyé
echo "Your message has just been sent !<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Click here to send another message</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Your message couldn't be sent.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Please, try again.</a>\n";
}
}
?>

Modifié par NorSeb
  • 3 semaines plus tard...
Posté (modifié)

Bonsoir,

Super script byc :thumbsup:

Par contre, 2 questions :

- si je ne mets pas mes fichiers à la racine (contact.php et antispam.php), le formulaire me dit que le message est bien parti mais il n'est est rien, il n'arrive pas à destination. Ne peut-on pas déporter ces 2 fichiers dans un autre répertoire ?

- comme Norbert_404, je souhaiterait récupérer une autre variable au niveau du formulaire (en faite, dans une liste déroulante, l'internaute à le choix entre 2 destinataires possibles), et utiliser la varibale ainsi récupérée pour définir l'adresse du destinataire (équivalent à $email_webmaster) mais j'y arrive pas :(

<select name="email_destinataire" id="email_destinataire">
<option selected="selected" value="">choix</option>
<option value="lui_AT_domaine.com">LUI</option>
<option value="elle_AT_domaine.com">ELLE</option>
</select>

J'essaie de récupérer la variable au niveau du traitement du formulaire soumis sans erreur ainsi :

$email_destinataire = $_POST["email_destinataire"];

Puis j'envoie le mail avec cette fonction :

@mail($_POST["email_destinataire"],$_POST["sujet"],$_POST["message"],$entete)

Quelqu'un pour m'éclairer ? :blush:

Modifié par k0ntakt
Posté

Ce script est excellent et les ajouts antispam via calcul et anti-injections semblent fonctionner à la perfection. Je viens de l'installer sur mon nouvel annuaire et c'est exactement ce que je cherchais. Merci aux participants de ce topic pour leur contribution :clap::thumbup:

Posté (modifié)

Norbert, tu as rajouté des crochets à ta valeur name de ton checkbox, tu dois les retirer. voilà ce que ça donne :

<input type="checkbox" name="newsletter" value="yes" />
<?php
if(isset($_POST["newsletter"]))
{
echo "Choix utilisateur : ".$_POST["newsletter"]."<br />";
?>

Kontakt, le fichier antispam.php tu peux le mettre dans le répertoire que tu veux, suffit que tu changes le chemin de ton include lorsque tu fais appel à ce fichier, en fonction bien entendu de l'endroit où tu mettras contact.php. Si le formulaire n'est pas expédié ou inséré dans ta base de données, c'est qu'il y a une erreur dans ton code lorsque tu fais appel à la fonction mail() ou sur ton insert pour ta bdd. Sinon pour ton 2eme problème, essai d'enlever le id="email_destinataire" à ton select, et pour l'execution de ta fonction mail, enleve l'arobase du debut et met un point virgule à la fin (je connais pas cet methode avec l'arobase donc jsuis pas sûr).

Merci Keroin et les autres :)

Modifié par byc
Posté

Ok pour le placement des fichiers, mais par contre pour le passage de la variable email_destinataire, je n'y arrive tjrs pas :(

Comme tu me l'as indiqué, j'ai supprimé l'id

Mais quand je veux modifier la fonction mail, j'ai un Parse error: syntax error, unexpected ';'

Le code (je suis parti de ta base avec quelques modifs...) :

<?php
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$email_destinataire = $_POST["email_destinataire"];
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "Return-Path: ".$_POST["email_destinataire"]. "\n";
$entete .= "MIME-Version: 1.0";
if (mail($email_destinataire,$_POST["sujet"]."(via formulaire du site)",$_POST["message"],$entete);)
{
// mail envoyé
include('envoieOK.php'); //J'appelle ici une page qui confirme l'envoie
//echo "Votre message a été envoyé.<br />\n";
//echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else {
// erreur lors de l'envoi du mail
include('envoieKO.php'); // J'appelle ici une page qui indique une erreur
//echo "Un problème s'est produit lors de l'envoi du message.\n";
//echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>

Une idée :?:

Posté (modifié)

Bonjour,

J'utilise votre formulaire de contact mais j'ai un petit soucis. Je l'ai intégré dans une page existante e mon site mais ça ne marche pas bien. Il y a des moments où il n'y a plus les graphismes mais après avoir envoyer un message ils reviennent ... je ne comprends pas bien.

Voici mon script : contact.php

<!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" lang="en" xml:lang="en">
<head>
<title>Eretz.be | Contacter le Webmaster</title>
<META NAME="description" CONTENT="Site de Yoav avec des sous domaines consacrés entre autre à Primo Levi ou à l'Athénée Maïmonide de Bruxelles et à son émission de radio ! ">
<META NAME="keywords" CONTENT="Primo, Levi, Rheims, Yoav, Juif, Etudiant, Israel, Sioniste,
EEIB, EI, EIB, Juive, Athénée, Maimonide, Ecole, Maternelle, thora, torah, site, sion ,sioniste, Sionsite, sioniste, talmud, talmud, casher, cacher, Casher, Cacher, tanach, Tanach, David, roi david, Magen, Magen David,
Magen David Adom, Adom, il, Il, IL, KKl, kkl, Mossad, Israel, Israël, israeli, Tali, tali, ">
<META NAME="subject" CONTENT="Eretz.be">
<META NAME="author" CONTENT="Yoav Rheims">
<META NAME="copyright" CONTENT="© Eretz.be | Yoav Rheims">
<META NAME="revisit-after" CONTENT="30 days">
<META NAME="identifier-url" CONTENT="http://www.eretz.be">
<META NAME="publisher" CONTENT="Yoav Rheims">
<META NAME="Robots" CONTENT="all">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<link rel="stylesheet" type="text/css" media="screen" href="style.css" />



<!-- DEBUT DU SCRIPT -->
<script language="JavaScript">
/*
SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
[url="http://www.editeurjavascript.com"]http://www.editeurjavascript.com[/url]
URL du script : [url="http://www.editeurjavascript.com/scripts/scripts_textes_1_80.php"]http://www.editeurjavascript.com/scripts/s...textes_1_80.php[/url]
*/
texteAff = "Bienvenue sur Eretz.be !";
place = 0;
tempoLong = 100;
function EJSAnimEtat2()
{
texteTemp1 = texteAff.substring(0,place);
texteTemp2 = texteAff.substring(place,place+1);
texteTemp2 = texteTemp2.toUpperCase();
texteTemp3 = texteAff.substring(place+1,texteAff.length);
window.status = texteTemp1 + texteTemp2 + texteTemp3;
if (place>texteAff.length)
{
place=0;
tempoLong=1000;
}
if (place==0)
tempoLong=100;
place++;
tempoAnimEtat2 = setTimeout("EJSAnimEtat2()",tempoLong)
}
function EJSAnimEtat2Break()
{
window.status = "";
clearTimeout(tempoAnimEtat2);
}
window.onload = EJSAnimEtat2;
window.onunload = EJSAnimEtat2Break;
</script><!-- FIN DU SCRIPT -->




</head>
<body >
<div id="conteneur">
<div id="header">
<img src="images/header.jpg" alt="header" width="800" height="136" />
<div id="menu">
<div><a href="http://www.eretz.be/">Accueil</a></div>
<div><a href="http://maimo.eretz.be/forum/ici/">Forum</a></div>
<div><a href="http://www.eretz.be/maimo.htm">Athénée Maïmonide</a></div>
<div><a href="http://primo-levi.eretz.be/">Primo Levi</a></div>
<div><a href="http://www.eretz.be/divers.htm">Divers</a></div>
</div>
</div>
<div id="body">
<div id="left">
<div class="shout_titre">
:: Naviguation ::
</div>
<div class="shout">
-: <a href="http://www.eretz.be/">Accueil</a> :-<br/>
-: <a href="http://maimo.eretz.be/forum/ici/">Forum</a> :-<br/>
-: <a href="http://www.eretz.be/maimo.htm">Athénée Maïmonide</a> :-<br/>
-: <a href="http://primo-levi.eretz.be/">Primo Levi</a> :-<br/>
-: <a href="http://www.eretz.be/contact.php">Contact</a> :-
</div>
<img src="images/9.jpg" style="float:left;" alt="" width="177" height="64" />

<br/>
<div class="shout_titre">

</div>
<div class="shout">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input name="tax" value="0" type="hidden"><input name="ah" value="0" type="hidden">
<input name="currency_code" value="EUR" type="hidden"><input name="no_note" value="1" type="hidden"><input name="no_shipping" value="1" type="hidden"><input name="item_name" value="Donation" type="hidden"><input name="business" value="yoavrheims_AT_gmail.com" type="hidden"><input name="cmd" value="_xclick" type="hidden">
<input name="lc" value="FR" type="hidden">
<p>
<input src="https://www.paypal.com/fr_FR/i/btn/x-click-but04.gif" name="submit" alt="VALIDER" border="0" height="31" type="image" width="80"></p>
</form>
<div align="center">

<a href="http://www.xiti.com/xiti.asp?s=275038" title="Mesurez votre audience">
<script type="text/javascript">
<!--
Xt_param = 's=275038&p=';
try {Xt_r = top.document.referrer;}
catch(e) {Xt_r = document.referrer; }
Xt_h = new Date();
Xt_i = '<img width="39" height="25" border="0" ';
Xt_i += 'src="http://logv32.xiti.com/hit.xiti?'+Xt_param;
Xt_i += '&hl='+Xt_h.getHours()+'x'+Xt_h.getMinutes()+'x'+Xt_h.getSeconds();
if(parseFloat(navigator.appVersion)>=4)
{Xt_s=screen;Xt_i+='&r='+Xt_s.width+'x'+Xt_s.height+'x'+Xt_s.pixelDepth+'x'+Xt_s.colorDepth;}
document.write(Xt_i+'&ref='+Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$')+'" title="Analyse d\'audience">');
//-->
</script>
<noscript>
Mesure d'audience ROI frequentation par <img width="39" height="25"
src="http://logv32.xiti.com/hit.xiti?s=275038&p=" alt="Analyse
d'audience" /></a></noscript>

</a></div>
<p align="center">
</div>

<img src="images/9.jpg" style="float:left;" alt="" width="177" height="64" />

<br/>
<div class="shout_titre">
:: Nouveautés ::
</div>
<div class="shout">

<marquee behavior="scroll" direction="up" scrollamount="1" scrolldelay="1" onmouseover="this.stop()" onmouseout="this.start()" style="height:100px;"><span class="texte"><strong>N</strong>ouveau template !!<br/><br/><strong>R</strong>echerche un graphiste qui sache utiliser photoshop<br/><br/><strong>B</strong>ientôt de nouvelles mises à jour ... Surprises !</span></marquee>
</div>
<img src="images/9.jpg" style="float:left;" alt="" width="177" height="64" />
</div>



<div id="right">
<div id="page_titre">
:: Bienvenue sur Eretz.be ::
</div>
<div id="page">
<?php
include_once("antispam.php");
?>

<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "yoav_AT_eretz.be";
// Rajout alphega: Dans cette ligne remplacer example.com par le nom de votre site. Utile si vous avez plusieurs formulaires.
$titre_cache = "Depuis le site Eretz.be";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["email_expediteur"])) {
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
}
if (isset($_POST["titre"])) {
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
}
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["message"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre adresse email...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Saisissez un message...";
}
elseif (antispam_check() == false) {
// l'addition est fausse
$erreur="Résultat incorrect, veuillez réessayer !";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de contact</title>
</head>
<body>
<h1>Contacter le webmaster</h1>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Titre de message (facultatif):</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p>Résultat du calcul:</p>
<?php antispam_ins(); ?>
<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "Return-Path: ". $email_webmaster . "\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
<br/>
</div>
<img src="images/10.jpg" style="float:left;" alt="" width="548" height="64" />
</div>
</div>
<div id="footer">
© <a href="http://www.eretz.be">Eretz.be</a> | Design by <a href="http://fluidblow.free.fr">
<font color="#000000">FluidBlow</font></a> pour <a href="http://www.rien2net.com">
<font color="#000000">www.rien2net.com</font></a>
</div>

</div>
<br/>




</body>
</html>

Il y a peut-être un problème avec l'hébergeur (one.com) mais je ne pense pas ...

Mon hébergeur est en php4.

Merci de votre solution,

Yoav

Modifié par NorSeb
Posté

A mon avis il faut régler ou faire une modif dans le script ... Je vais tenter un truc mais je suis pas sûr ...

Posté (modifié)

Bonjour,

Il faut surtout que tu regardes bien le script avant de l'inserer. Le code que l'on donne sur ce sujet contient le code php, le code html avec la partie <head> et la partie <body>.

Si tu fais un simple copier/coller ça ne fonctionnera pas. Mets en début de code (avant tout le reste sur ta page) les instructions php jusqu'a la ligne:

// === fin de traitement des données du formulaire =======================================================
?>

Ne mets pas cette partie là que tu as déjà sur ta page:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xml:lang="fr" lang="fr" xmlns=&quot;http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Formulaire de contact</title>

</head>

<body>

Mets ensuite tout le reste, sans les balises de fin </body> et </html> que tu dois déjà avoir sur ta page également.

Modifié par alphega
Posté (modifié)
Enlève le point-virgule de cette ligne :

if (mail($email_destinataire,$_POST["sujet"]."(via formulaire du site)",$_POST["message"],$entete);)

Effectivement, l'erreur venait de la pour la syntaxe, shame on me :blush:

Enfin, suite à ça j'ai du gratter encore quelque truc mais désormais ça fonctionne ! :P Merci beaucoup.

J'en profite pour poser une autre question :

Je voudrais les 2 mails possible dans la liste déroulante ne soit pas visibles des robots, est-ce que ce code le permet ?

				  <select name="email_destinataire" id="email_destinataire">
<option value="<?php echo htmlspecialchars("lui_AT_domaine.com") ?>" />LUI</option>
<option value="<?php echo htmlspecialchars("elle_AT_domaine.com") ?>"/>ELLE</option>
</select>

Modifié par k0ntakt
Posté

K0ntakt, la seule solution que je vois est de mettre le nom du contact (ou autre qui permet d'identifier à qui on envoi le mail) dans la liste déroulante. Ensuite, dans le traitement de ton formulaire, tu fais un switch et en fonction de la valeur de la boite déroulante, tu donne la valeur du destinataire à une variable pour l'envoi de ton mail.

Posté

Super byc, ça fonctionne très bien, simple et efficace, comme ton script antispam :thumbsup:

Une dernière chose (enfin, j'espère :hypocrite: ) : Les mails ainsi reçus sont considérés comme "spam" par le serveur. Y-a-t-il une astuce pour corriger cela ?

Merci encore ;)

Posté

Merci beaucoup pour ce script. Cela dit il reste un pb,

je n'ai pas retouché au code (sauf pour le mail destinataire),

il me dit ke le message est bien envoyé, maisj'en doute

car aucun message n'arrive.....

J'ai vu ke kOntact avait eu le pb mais je ne comprends

pas comment il a solutionné.

Si quelqun peut m'aider, un GROS merci d'avance...

  • 2 semaines plus tard...
Posté (modifié)

Bonjour à tous !

Bonne année 2007 !

Mais je bute sur un point :

Comment inclure dans le message de l'email que je reçois la valeur d'une checkbox, bouton radio, etc... ?

J'ai l'impression que tout se passe dans le code ci-dessous... (ligne 4)

$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "Return-Path: ". $email_webmaster . "\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
e

J'ai remplacé $_POST["message"] par $_POST["checkbox"] pour avoir dans mon email la valeur du checkbox par exemple.ça marche nickel. En revanche je ne reçois pas de message puisque le script envoie la valeur du checkbox à la place du message...

Donc comment intégrer dans le message la valeur d'une checkbox, liste,... ?

Ps: J'ai éssayé de concaténer dans $_POST["message"] la valeur "message" avec "checkbox" pour obtenir ceci :

$_POST["message.checkbox"] en espérant que la valeur du checkbox soit incluse dans le message...

ça marche pas non plus...

Je suis perdu ! :(

Modifié par Norbert_404
Posté

Pour concaténer les valeurs, tu devrais faire

$_POST['message'].$_POST['checkbox']

Par contre, il ne faut pas oublier que la valeur d'une checkbox n'est envoyée que si elle est cochée.

Posté

Bonne année à tous !

K0ntakt, c'est un problème assez courant que tu as. A vrai dire, je n'ai pas encore eu ce problème là mais si tu cherche bien sur le forum ou google tu trouveras la réponse à ta question.

dzaster, essaie de retirer le @ dans la condition if(@mail(...)), ça devrait fonctionner.

Norbert_404, captain_torche a répondu plus vite que moi :)

Posté

Merci beaucoup ! ;):):thumbsup:

je viens de tester, ça marche.

J'ai finalement opter pour une liste déroulante à 2 choix

Pour info et si ça peut aider, je vous donne le code :

<select name="choix " id="choix ">
<option value="<?php echo htmlspecialchars("choix: Yes") ?>" />Red</option>
<option value="<?php echo htmlspecialchars("choix : No") ?>"/>Blue</option>
</select>

if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"].$_POST["choix],$entete)){

Je vais rajouter un retour à la ligne aprés la concaténation pour avoir un message plus lisible :

if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$_POST["message"]./n$_POST["choix],$entete)){

Blablabla

Red

Posté

Ah heu, au début tu parlais de Cryptographp, je croyais donc que tu utilisais cela, désolé ^^

Cette page est bonne à lire tout de même pour ceux qui passeront ici ;)

Bonne journée :)

Posté

J'ai un problème avec le formulaire avec le captcha, j'arrive à le visualiser mais même avec le bon code il me met tout le temps "Code de vérification non valide", le formulaire n'est jamais validé même avec le bon code, j'ai réessayé plusieurs fois et j'ai toujours ce problème, d'ou cela peut-il venir ?

Sur le site il est marqué que cela peut provenir des sessions, comment je peux le vérifier ?

Merci.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant

×
×
  • Créer...