Je suis à la dernière étape de mon site web et étant débutant je bloque sur un détail dans l'installation de mon Captcha sur mon formulaire.
J'ai installé ce code dans le formulaire
<?php
$cryptinstall="crypt/cryptographp.fct.php";
include $cryptinstall;
?>
Nickel, celui-ci aussi
<?php dsp_crypt(0,1); ?><br>
<font color="#848484"><b>Recopiez le code ici :</b></font><br>
<input type="text" name="code">
(sert à afficher le captcha)Et enfin dans l'envoi du formulaire j'inclu "action="verifier.php" qui contient les lignes suivantes :
<?php
$cryptinstall="cryptographp.fct.php";
include $cryptinstall;
?>
<html>
<?php
if (chk_crypt($_POST['code']))
echo "Bravo";
else echo "Erreur" ;
?>
</html>
Tout fonctionne parfaitement, si le code est bon on me renvoi bravo et si il est mauvais on me renvois erreur.
Maintenant ce que je souhaite c'est que le formulaire s'envoie une fois que le code a été vérifié (donc changer bravo par du code qui exécuterais le reste de l’envoi), et que ça affiche un message d'erreur si il est mauvais.
Voici le formulaire en entier
<?php
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
//On commence une session pour enregistrer les variables du formulaire...
session_start();
$_SESSION['champ1'] = $_POST['champ1'];
//Contrôle du spam...
if (eregi("http",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['champ1'])) {
$erreur_champ1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}
$_SESSION['zone_email1'] = $_POST['zone_email1'];
//Contrôle du spam...
if (eregi("http",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>http</b>";
$flag_erreur = 1;
}
if (eregi("\[url",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <B>[url</b>";
$flag_erreur = 1;
}
if (eregi("<a",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne peut comporter des liens hypertexte.";
$flag_erreur = 1;
}
if (eregi("\[link",$_POST['zone_email1'])) {
$erreur_email1 = "Pour raisons de sécurité, ce champ ne peut comporter les caractères <b>[link</b>";
$flag_erreur = 1;
}
// Définir l\'icone apparaissant en cas d\'erreur...
// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;
// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}
//Validation PHP des éléments du formulaire...
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {
// Addresse de réception du formulaire
$email_dest = "[email protected]";
$sujet = "Contact";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: Contact<[email protected]>\n";
$entetes .="Return-Path: Contact<[email protected]>\n";
$entetes .="Reply-To: Contact<[email protected]>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";
//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Message = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Mail = " . $_SESSION['zone_email1'] . "</font><br>\n";
// Fin du message HTML
$fin = "</body></html>\n\n";
$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;
// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {
// Rediriger vers la page de remerciement
header("Location:merci.php");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<?php
$cryptinstall="crypt/cryptographp.fct.php";
include $cryptinstall;
?>
<!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</title></head><body><form name="mail_form" method="post" action="verifier.php" action="<?php echo($_SERVER['PHP_SELF']); ?>">
<div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire
de contact</strong></font></div><br></br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
} // Fin du else...
} // Fin du else...
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Message</font></div></td>
<td align="center" valign="middle" width="30">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</td>
<td><input name="champ1" type="text" value="<?php echo(stripslashes($_SESSION['champ1'])); ?>"></input></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="140"><div align="right"><font face="Verdana" size="2">Mail</font></div></td>
<td width="30" align="center" valign="middle">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</td>
<td><input name="zone_email1" type="text" value="<?php echo(stripslashes($_SESSION['zone_email1'])); ?>"></input></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center">
<center><br>
<?php dsp_crypt(0,1); ?><br>
<font color="#848484"><b>Recopiez le code ici :</b></font><br>
<input type="text" name="code"><br>
</center><br>
<input type="reset" name="Reset" value=" Effacer "></input>
<input type="submit" name="envoi" value="Envoyer"></input>
</div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value="0"></input></div></form></body></html>
Bon, ça fait un peu peur mais c'est un simple formulaire.
Pour vous aider un peu, voici la partie du code qui envoie le mail...
<form name="mail_form" method="post" action="verifier.php" action="<?php echo($_SERVER['PHP_SELF']); ?>">
Comme la vérification renvoie sur "verifier.php" le reste du code ne s’exécute pas, j'aimerais savoir comment exécuter ce code si le captcha est bon, que mettre dans verifier.php ?Merci pour votre aide, j'en ai extrêmement besoin, je sèche.
Bonne journée !