Filtrer des mots a l'envoit d'un formulaire

Rick38 Messages postés 8 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 6 août 2008 - 1 juil. 2008 à 06:46
Rick38 Messages postés 8 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 6 août 2008 - 2 juil. 2008 à 16:17
Bonjour,

je cherche depuis un moment et je ne trouve pas ce que je veux
exactement. Je m'explique, j'ai un formulaire et une fois que les gens
appuient sur envoyer les informations sont envoyées par mail(). Jusque
là tout va très bien.

J'aimerais mettre en place un filtre de mots pour le text area exemple :

si la personne tape dans son texte le mot recherche et bien
en cliquant sur envoyer un message apparrait pour dire a la personne
qu'il ne s'agit pas d'un formulaire pour les recherches.

En passant quand on clique sur le bouton envoyer l'action se passe sur envoi.php.

Du même coup serait-il possible de filtrer plusieurs mots dans un même texte du genre :

recherche

cherche

etc.

Merci de votre aide

6 réponses

Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
1 juil. 2008 à 09:16
Il faudra passer en javascript, avec un tableau de mot à chercher.
Tu boucles sur ton tableau, et a chaque fois tu utilises la fonction substr(tonMot, tonContenuTextArea).
Si ca te renvoie une valeur, la chaine a été trouvée, donc tu quittes ta boucle, et tu affiches ton message.
0
Rick38 Messages postés 8 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 6 août 2008
2 juil. 2008 à 02:17
salut,

merci beaucoup pour ta réponse mais je dois avouer que je suis assez nul avec le javascript et encore plus pour les relier ensemble :)

je vous laisse mes codes si vous voulez m'aider car je cherche depuis un moment et je désespère.

ma page contacttest.html :
<form action="mercitest.php" method="post" enctype="multipart/form-data" name="formulaire">
<tr>               
<td colspan="3">Questions, commentaires &amp; suggestions

  Attention ne pas mettre d'accents sur aucune lettre s'il vous pla&icirc;t.

</td>
</tr>
<tr>
<td>
Votre nom
</td>
<td colspan="2"></td>
</tr>
<tr>               
<td width="146">
Votre courriel
</td>
<td colspan="2"></td>
</tr>
<tr>               
<td>
Sujet
</td>
<td colspan="2"></td>
</tr>
<tr>               
<td>
Message
</td>
<td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td>
</tr>
<tr>               
<td></td>
<td width="208"><center></center></td>
<td width="246"><center></center></td>
</tr>
</form>

Ma page mercitest.php qui traite le form et envoit par mail() :

<?php

function unhtmlentities ($string)
{
// Remplace les entités numériques
$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("1"))', $string);
$string = preg_replace('~&#([0-9]+);~e', 'chr("1")', $string);
// Remplace les entités litérales
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}
 
$nom=$_POST['nom'];
$mail=$_POST['mail'];
$objet=$_POST['objet'];
$message=$_POST['message'];
 
/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";
 
//////ici on détermine le mail en format texte
$headers .= "Content-type: text/plain; charset=latin-1\r\n";
 
////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";
 
$subject="$objet";
$destinataire="provener@cgocable.ca";
$body="$nom\n$mail\n$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "";
} else {
echo "Une erreur s'est produite";
}

?>

Ce que je veux vraiment c'est que si une personne remplit le formulaire et dans le textarea entre le mot recherche ou cherche ou autre  il recoit un message comme quoi ce formulaire ne sert pas  à ça.

S'il vous plait aider moi à arranger mon code car je suis perdu.

Merci d'avance !
0
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
2 juil. 2008 à 09:10
<head>
<script type="text/javascript">
function verif_input(text) {
 var mots = new Array('cherche','toto','titi');
 for (i = 0 ; i < mots.length ; i++) {
  if (text.toLower().match(mots[i])) {
   Alert('chose');
  }
 }
}
</head>

<textarea name="message" cols="50" rows="10" onKeyUp="verif_input(this.value);"></textarea>
0
Rick38 Messages postés 8 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 6 août 2008
2 juil. 2008 à 14:38
merci beaucoup pour ta réponse bling 182

mais ça ne fonctionne pas alors je vais essayer de trouver pourquoi ça ne fonctionne pas. Pourtant je mets bien le script dans les balise head de ma page de formulaire et je mets aussi le bout de code dans  ma ligne pour le textarea.

Si il y a quelque chose que je ne vois pas vous seriez gentil de me le dire :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
2 juil. 2008 à 16:01
Regarde dans la console d'erreur javascript intégrée à firefox, il te donnera surement l'erreur.
0
Rick38 Messages postés 8 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 6 août 2008
2 juil. 2008 à 16:17
Salut,

non je n'ai aucune erreur dans la console

De plus quand j'essaie de taper le mot recherche  ou bien une phrase comme je recherche garage normalement avec ton script il devrait me donner un message car j'ai tapé recherche et ainsi empêcher l'envoit du formulaire, mais non je n'ai pas de message et quand je clique sur envoyer le message part et je le reçoit.

Merci beaucoup de ton aide !
0
Rejoignez-nous