Ok ok, j'enlève illico presto mon
html_entity_decode... mais par quoi le remplacer alors ?
Et voici mon script (enfin c'est pas encore toute la page mais ça devrait faire l'affaire) :
<?php
session_start();
$cookie_expire = time() + 01*15*60;
if( isset($_POST['objet']) )
{
setcookie('objet', $_POST['objet'], $cookie_expire);
}
if( isset($_POST['mail']) )
{
setcookie('mail', $_POST['mail'], $cookie_expire);
}
if( !isset($_COOKIE['captcha']) )
{
setcookie('captcha', $code, $cookie_expire);
}
?>
<?php // DÉFINITION DES VARIABLES
$destinataire = '*@free.fr';
$nom = $_SESSION['nom'];
$objet = $_COOKIE['objet'];
$mail = $_POST['mail'];
?>
<?php // CRÉATION DU MAIL :
if( isset($_POST['send']) )
{
(...) // Sont définis ici les headers, les messages, etc
if( $transfert != true )
{
if( preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $_POST['mail']) )
{
if( $_POST['verif'] == $_COOKIE['captcha'] )
{
// Envoi du mail
mail(...)
$transfert = true;
}
else
{
$offcaptcha = true;
}
}
else
{
$offmail = true;
}
}
}
?>
<!DOCTYPE ... >
<form method="post" action="w.formulaire_contact.php" >
<?php // STATUT DE L'ENVOI
if
( isset($_POST['send']) )
{
if( $transfert == true )
{ ?>
Merci <?php echo $_SESSION['nom']; ?>, ta demande a été envoyée avec succès ! <br />
Je t'enverrai dans la semaine un mail de confirmation à <?php $_COOKIE['mail']); ?> <br />
Tu peux m'envoyer un autre mail en sélectionnant un autre sujet ci-dessous
<?php }
elseif( $offcaptcha == true )
{ ?>
Erreur lors de la re-écriture du captcha : Mail non envoyé !
<?php }
elseif( $offmail == true )
{ ?>
L'adresse mail <cite> <?php echo $_POST['mail']; ?> </cite> est invalide : Mail non envoyé !
<?php }
}
?>
<span class="etape"> 1. Sélectionne le sujet du message puis clique sur Ok : </span> <br />
<select name="objet">
<option value="inscription" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'inscription') ){ ?> selected="selected" <?php } ?> >t'inscrire et bénéficier des nombreux avantages !</option>
<option value="password_oubli" <?php if ( isset($_POST['objet']) AND ($_POST['objet'] == 'password_oubli') ){ ?> selected="selected" <?php } ?> >se rappeler de son mot de passe ?</option>
<option ... > (...)
</select> <input type="submit" value="Ok" > <br />
</form>
<br/>
<form method="post" action="w.formulaire_contact.php" enctype="multipart/form-data" >
<span class="etape">2. Remplis le(s) champ(s) suivants :</span> <br />
<label for="mail">adresse mail :</label> <input type="text" name="mail" style="margin-left: 4.5%" value="<?php echo html_entity_decode($_COOKIE['mail']); ?>" />
<br />
<?php
if( isset($_POST['objet']) )
{
//--------------------------Si client non identifié comme membre------------------------
if( $_SESSION['nom'] == true )
{
if ($_POST['objet'] == 'password_change')
{ ?>
<label for="mdp_change">mot de passe désiré :</label> <input type="text" name="mdp_change" /> <br/>
<?php }
elseif ( $_POST['objet'] == ...
(...)
elseif
(
$_POST['objet'] == 'password_change'
OR ...
(...)
)
{ ?>
<br/>
<span class="etape">3. Recopie maintenant le captcha :</span>
<img src="w.captcha.php" alt="captcha" style="margin-left: 2%; border: 1px solid grey" /> <input type="text" name="verif" size="10" maxlength="6" /> <br />
<input name="send" type="submit" value="Envoyer !" style="margin-left: 2%"> <label for="send" style="color: blue"> Clique pour valider et envoyer ton message !</label>
<?php }
//----demande d'inscription mais déjà membre----
elseif( $_POST['objet'] == 'inscription' OR $_POST['objet'] == 'password_oubli' )
{ ?>
<p style="color: red; text-align: center"> Tu es déjà identifié avec un mot de passe en tant que membre ! </p>
<?php }
}
//------------------------------------------------------------------------------------------------------
//-----------------------------Si client non identifié comme membre---------------------------------
elseif( $_SESSION['nom'] == false )
{
if( $_POST['objet'] == 'inscription' OR $_POST['objet'] == 'password_oubli' )
{ ?>
<label for="nom">prénom et nom :</label> <input type="text" name="nom" /> <br />
<br/>
<span class="etape">3. Recopie maintenant le code de vérification ci-dessous :</span> <br />
<img src="w.captcha.php" alt="captcha" style="margin-left: 2%; border: 1px solid gray" /> <input type="text" name="verif" size="10" maxlength="6" />
<input name="send" type="submit" value="Envoyer !" style="margin-left: 5%"> <label for="send" style="color: blue"> Clique pour valider et envoyer ta demande !</label> <br />
<?php }
elseif
(
$_POST['objet'] == 'password_change'
OR ...
(...)
)
{ ?>
<p style="color: red; text-align: center" >
Tu dois t'identifier en tant que membre pour pouvoir faire cela !
</p>
<?php }
//----------------------------------------------------------------------------------------------------
}
?>
</form>
<?php
;}
?>
NOTE :
. J'envisage d'améliorer la simplicité du formulaire pour le client, à savoir placer le captcha avec la liste déroulante et de n'afficher les champs du formulaire qu'après vérification du captcha.
-> Les robots sont-ils capables de sélectionner un champ d'une liste déroulante ?
Merci pour ton aide