Accueil > Forum > > > > Souci formulaire contact php avec captcha
Souci formulaire contact php avec captcha
dimanche 19 septembre 2010 à 22:39:25 |
Souci formulaire contact php avec captcha

snip74
|
Bonjour,
je fait appel a vous car je pète un câble lol.
Voila j'ai trouvé un système de captcha je les mis sur mon formulaire de contact et rien ne marche ni alerte ni envoie d'email. donc je fait appel a vous car je suis dessus depuit 3 jours sans trouvé pourquoi il ne fonctionne pas je vous mais le code originale puis mon code a moi.
code originale :
Code PHP : <?
session_start(); //ouverture la session pour conserver le captcha
if (!isset($_POST["action"])) $_POST["action"]="";
if (!isset($_POST["nom"])) $_POST["nom"]=""; //déclaration de chaque élément de formulaire
if (!isset($_POST["email"])) $_POST["email"]="";
if (!isset($_POST["message"])) $_POST["message"]="";
if (!isset($_POST["captcha"])) $_POST["captcha"]="";
$msg="";
$flag=0;
if ($_POST["action"]=="Envoyer" && $_POST["email"]!="" && strtolower($_POST["captcha"])==$_SESSION["phrase"]){
$destinataire="ygmar@yahoo.com"; //mettez ici votre adresse e-mail en tant que webmaster du site
$objet="Formulaire de contact du site web"; // titre du mail automatique
$message_envoi=" Vous avez reçu une demande de contact \n";
$message_envoi.="Voici le contenu : \n"; //déclaration du contenu du message
$message_envoi.="nom du contact :".$_POST["nom"]." \n";
$message_envoi.="email du contact :".$_POST["email"]." \n";
$message_envoi.="message du contact :".$_POST["message"]." \n"; //rajouter apres cette ligne les autres éléments du formulaire
mail($destinataire,$objet,$message_envoi); // envoi du message
$flag=1; //si tout est OK, on passe cette variable à 1
}
else{
$msg="<i>remplissez au moins le nom et le texte de vérification</i>";
}
// gestion de l'affichage du captcha
$monfichier=fopen("captcha.txt","r");
$i=0;
while(!feof($monfichier)){
$montab[$i]=fgets($monfichier,4096);
$i++;
}
fclose($monfichier);
shuffle($montab);
$elem0=explode(";",$montab[0]);
$elem1=explode(";",$montab[1]);
$elem2=explode(";",$montab[2]);
$elem3=explode(";",$montab[3]);
$elem4=explode(";",$montab[4]);
$phrase=$elem0[0].$elem1[0].$elem2[0].$elem3[0].$elem4[0];
$_SESSION["phrase"]=$phrase;
$img="<div class='img'><img src='img_captcha/".$elem0[1]."' /><img src='img_captcha/".$elem1[1]."' /><img src='img_captcha/".$elem2[1]."' /><img src='img_captcha/".$elem3[1]."' /><img src='img_captcha/".$elem4[1]."' /></div>";
//fin de gestion du captcha
?>
<!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>
<title>Formulaire de contact</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
/* feuille de style pour le formulaire, changez ici ce que vous désirez */
form{width:500px;font-family:verdana;font-size:10px;}
legend{font-weight:bold;}
.img{border:1px solid black;width:125px;}
</style>
</head>
<body>
<?
if($flag==1){
// quand le message est parti voici ce qui est affiche, libre à vous de changer ce texte
echo "merci pour votre message";
}
else {
?>
<form method="post" name="contact" action="<?php echo $PHP_SELF ?>">
<fieldset>
<legend>Formulaire de Contact</legend>
<p><? echo $msg ?></p>
<p><label>Nom : </label><input type="text" name="nom" value="<?php echo $_POST["nom"] ?>" /></p>
<p><label>Email : </label><input type="text" name="email" value="<?php echo $_POST["email"] ?>"/></p>
<!-- vous pouvez rajouter des éléments de formulaires ici -->
<p><label>Message : </label><textarea name="message" cols=40 rows=8><?php echo $_POST["message"] ?></textarea></p>
<p><? echo $img ?><label>Recopiez le texte de l'image :</label><input type="text" name="captcha" size="5"/></p>
</fieldset>
<input type="submit" name="action" value="Envoyer" />
</form>
<? } ?>
</body>
</html>
Et ici mon code qui ne fonctionne pas :/
Mon code :
Code PHP : <?
session_start(); //ouverture la session pour conserver le captcha
if (!isset($_POST["action"])) $_POST["action"]="";
if (!isset($_POST["sexe"])) $_POST["sexe"]="";
if (!isset($_POST["nom"])) $_POST["nom"]=""; //déclaration de chaque élément de formulaire
if (!isset($_POST["email"])) $_POST["email"]="";
if (!isset($_POST["sujet"])) $_POST["sujet"]="";
if (!isset($_POST["message"])) $_POST["message"]="";
if (!isset($_POST["captcha"])) $_POST["captcha"]="";
$msg="";
$flag=0;
if ($_POST["action"]=="Envoyer" && $_POST["email"]!="" && strtolower($_POST["captcha"])==$_SESSION["phrase"]){
$destinataire="Monemail@live.fr"; //mettez ici votre adresse e-mail en tant que webmaster du site
$objet="Contact de la page"; // titre du mail automatique
$message_envoi=" Vous avez reçu une demande de contact \n";
$message_envoi.="Voici le contenu : \n"; //déclaration du contenu du message
$message_envoi.="Sexe :".$_POST["sexe"]." \n";
$message_envoi.="nom du contact :".$_POST["nom"]." \n";
$message_envoi.="email du contact :".$_POST["email"]." \n";
$message_envoi.="sujet du contact :".$_POST["sujet"]." \n";
$message_envoi.="message du contact :".$_POST["message"]." \n"; //rajouter apres cette ligne les autres éléments du formulaire
mail($destinataire,$objet,$message_envoi); // envoi du message
$flag=1; //si tout est OK, on passe cette variable à 1
}
else{
$msg="<i>Tout les champs sont obligatoir (*)</i>";
}
// gestion de l'affichage du captcha
$monfichier=fopen("captcha.txt","r");
$i=0;
while(!feof($monfichier)){
$montab[$i]=fgets($monfichier,4096);
$i++;
}
fclose($monfichier);
shuffle($montab);
$elem0=explode(";",$montab[0]);
$elem1=explode(";",$montab[1]);
$elem2=explode(";",$montab[2]);
$elem3=explode(";",$montab[3]);
$elem4=explode(";",$montab[4]);
$phrase=$elem0[0].$elem1[0].$elem2[0].$elem3[0].$elem4[0];
$_SESSION["phrase"]=$phrase;
$img="<div class='img'><img src='img_captcha/".$elem0[1]."' /><img src='img_captcha/".$elem1[1]."' /><img src='img_captcha/".$elem2[1]."' /><img src='img_captcha/".$elem3[1]."' /><img src='img_captcha/".$elem4[1]."' /></div>";
//fin de gestion du captcha
?>
<!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 contact</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-image: url();
background-color: #CCCCCC;
}
.Style6 {
color: #008000;
font-weight: bold;
}
.Style1 {color: #FF0000}
-->
</style></head>
<body>
<?
if($flag==1){
// quand le message est parti voici ce qui est affiche, libre à vous de changer ce texte
echo "merci pour votre message";
}
else {
?>
<div id="page">
<!--debut banniere -->
<div id="baniere"><img src="images/bnr.jpg" alt="bannière" width="955" height="150" longdesc="http://www.Monlien.fr" /></div>
<!--Fin banniere -->
<!--debut menu -->
<div id="menu">
<ul>
<li><a href="#">Nous contacter</a></li>
<li><a href="#">Inscrivez-vous</a></li>
<li><a href="#">Nos tarifs</a></li>
<li><a href="#">Nos services</a></li>
<li><a href="index.php">Accueil</a></li>
</ul>
</div>
<!--fin menu -->
<!--debut menu gauche -->
<div id="gauche">
<ul>
<li><a href="#">Menu</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Menu</a></li>
</ul>
</div>
<!--fin menu gauche -->
<!--debut centre -->
<div id="centre">
<form method="post" name="contact" action="<?php echo $PHP_SELF ?>" >
<table>
<tr>
<td colspan="2"><div align="center"><span class="Style6">Formulaire De Contact</span></div></td>
</tr>
<tr>
<td colspan="2">S'il vous plaît, prenez le temps de remplir tous les champs portant un astérisque <span class="Style1">*</span>,
vous nous aiderez à traiter votre demande le plus rapidement possible. Merci. </td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td><strong>Vous êtes:</strong> <span class="Style1">*</span></td>
<td><select id="sexe" name="sexe">
<option selected="selected" value="<?php echo $_POST["sexe"] ?>">Choisissez</option>
<option value="Madame">Madame</option>
<option value="Mademoiselle">Mademoiselle</option>
<option value="Monsieur">Monsieur</option>
</select></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Nom, Prénom:</strong> <span class="Style1">*</span></td>
<td><input type="text" name="nom" maxlength="50" size="43" value="<?php echo $_POST["nom"] ?>" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Votre Email</strong> : <span class="Style1">*</span></td>
<td><input type="text" name="email" maxlength="50" size="43" value="<?php echo $_POST["email"] ?>" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Sujet</strong> : <span class="Style1">*</span></td>
<td><input type="text" name="sujet" maxlength="50" size="43" value="<?php echo $_POST["sujet"] ?>" /></td>
</tr>
<tr>
<td colspan="2"><div align="center">Votre message : <span class="Style1">*</span> <br />
<textarea name="message" cols=50 rows=8><?php echo $_POST["message"] ?></textarea>
</div></td>
</tr>
<tr>
<td><strong>Entrée le code</strong> : <span class="Style1">*</span></td>
<td><input type="text" name="captcha" size="5"/></td>
</tr>
<tr>
<td><strong>Code a introduire</strong> : </td>
<td><? echo $img ?></td>
</tr>
<tr></tr>
</table>
<div align="center">
<input name="action" type="submit" value="Envoyer" />
-
<input name="reset" type="reset" value="Annuler" />
</div>
</form><? } ?>
</div>
<!--fin centre -->
<!--debut pied page -->
<div id="pied">
<div align="center">Copyright © 2010 </div>
</div>
<!--fin pied page -->
</div>
</body>
</html>
Merci par avace.
Cordialement Stéphane
|
|
mardi 21 septembre 2010 à 19:12:48 |
Re : Souci formulaire contact php avec captcha

mailliam
|
Tcho,
j'ai lu ton code, c'est vrai que je ne trouve pas d'erreur flagrante! mais j'ai pas chercher à l'essayer non plus..
Je te mets quand même un commentaire pour pas que tu ne t'énerve trop longtemps lol
vas voir cette source:
URL=http://www.codes-sources.com/code.aspx?ID=38969
elle fonctionne a merveille et est simple d'utilisation, je l'utilise sur mon site.. Pour la petite histoire, avant que je ne le mette j'avais 10 msg de pub par jour sur mon forum!! je l'ai mis et malgré le captcha j'avais tjs un robot qui parvenait à me mettre un msg de viagra!
Donc j'ai fait comme cela, en plus du capcha pour le lien qui renvoie sur mon forum:
Code HTML : <form method="post" action="forum.php" name=form1>
<INPUT TYPE="hidden" NAME="antispam" VALUE="000">
<A HREF="javascript:document.form1.submit()">forum</A>
</form>
de cette facon j'envoie la variable "antispam" à ma page forum.php
et dans la page je contrôle que dans la variable il y aie "000" de cette facon:
Code PHP : <?php
if ($antispam == "000")
{
//ok (ca veut dire que la page est chargée en passant par le lien..)
}
else
{
print "Une Erreur s'est produite!";
exit;
}
?>
donc comme le robot charge directement les pages qui ont des forums, ici direct forum.php sans passer par le lien, la variable antispam est vide et le formulaire ne s'affiche pas
Voilou j'espère t'avoir aidé un p'tit peu lol
|
|
Cette discussion est classée dans : code, formulaire, montab, explode, captcha
Répondre à ce message
Sujets en rapport avec ce message
formulaire php htlm / captcha [ par djbabou ]
Bonjour, a tous J'ai développé un formulaire dans lequel j'ai intégrer un captcha image. Comme tous captcha normalement construit, après soumission d
SMARTY et CAPTCHA [ par zzzzzz ]
Bonjour, Je débute en POO et en SMARTY et je ne comprends pas comment intégrer un CAPTCHA à SMARTY. J'utilise captcha.fr comme captcha et le code se
Eviter les doublons par rapport à un formulaire. [ par ecolom ]
Bonjour à tous, me voilà de nouveau dans les embarras ( manque de connaissances quand tu nous tiens.. ) En fait, j'ai créé un formulaire d'inscriptio
Faire un update sql sur plusieurs ligne avec un formulaire [ par Bxapero ]
Bonjour, Je créer un logiciel pour la société que je monte, je suis bloqué pour faire un update a partir d'un formulaire générer en php. Je ne sais
Souci avec explode et array [ par Bxapero ]
Bonjour, J'essaie de faire une récupération de plusieurs qui se trouve dans une base de donnée que j'ai nommé packs, dans la colonne Alcool. Les don
addition impossible avec formulaire et variable !! [ par vincentpablo02 ]
[^^clinoeil1]bonsoir à tous, voilà un souci que je ne trouve pas !! j'ai un formulaire dans lequel je veux saisir une addition et laisser faire php
Validation de formulaire avec Adobe Spry et Zend_captcha [ par maryleo ]
Bonjour à tous! Excusez-moi de vous déranger, mais cela fait trois jours que je suis coincé sur un projet. Je développe actuellement un site web dans
Actualiser laphoto d'un formulaire sans valider [ par mrassaa ]
Salut, Mon problème est assez compliqué mais je pense que c'est faisable avec Javascript (je sais que c'est le forum de PHP) : J'ai un formulaire écr
2 formulaire en conflit [ par scromania ]
bonjour, Voila dans la cas ou l'utilisateur et de niveau =9 alors une page (include)et en plus. [code=php]if ($visiteur == 9){ include("modules/Page
poster le resultat d'un formulaire dans un autre formulaire [ par jbtv ]
bonjour a tous j'aurai voulu transferer les donner d'un formulaire a un autre pour l'instant les essai que j'ai fait transmette quelque donner exe
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Forum
SELECTSELECT par hab2oo
Cliquez pour lire la suite par hab2oo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|