Voila,
g une fonction qui me semble interessante pour contrôler un formulaire
(et éviter les répétions) :
Code :
- // -------------------------------------------------------------------------------
- // fonction pour interdire la répétition
- //Supprime toutes les répétitions de caractère ou suite de caractère.
- //Par exemple "AAAAAAAAAAAAAAAAAAAAAAAAA" ou "azert azert azert azert".
- // -------------------------------------------------------------------------------
- function noRepeat($txt,$size){
- // $txt : chaine de caractère ; $size : nombre maximale de répétition
- $search="'(.+?)\\\\1{".$size.",}'";
- // Expression régulière : chaine de caractère répété plus de $size fois
- $replace=str_repeat("\\\\1", $size);
- // Création d'une chaine de caractère répété $size fois
- // \\\\1 : Expression régulière : revoie la chaine de caractère qui est répété
- // str_repeat permet de multiplié $size fois la chaine de caractère
- while(preg_match($search,$txt)){
- // boucle de recherche : tant qu'il y a une répétition
- $txt=preg_replace($search,$replace, $txt);
- // On remplace $search par $replace dans la chaine
- }
- return $txt;
- // retourne la chaine de caractère vérifié
- }
|
j'ai également défini l'alerte :
Code :
- $alerte_repetion = htmlentities('- Votre doigt s\'est probablement endormi sur une touche du clavier...Réveillez le ! Et remplissez correctement ce champ') . "<br />";
|
ET LA commence mes problemes, g une erreur je sais pas où lorsque j'appelle la fonction :
Code :
- else{
- if (!noRepeat($nom)) || (!noRepeat($prenom)) || (noRepeat($service)) || (noRepeat($email))
- {
- print $alerte_repetition;
- }
- else{
- $destinataire="francois@totemis.fr";
- $from="$email";
- $reponse="$message";
- $sujet="Demande un nouveau mot de passe";
- $message="$email";
- mail($destinataire,$sujet,$message, "From:$from\r\nReply-to:$from" );
- echo 'Votre demande <b>a bien été enregistrée</b>. <br />Votre nouveau mot de passe vous sera transmis <b>très prochainement par courrier</b>.';
- }
- }
|
mon problème vient surtout de la : OU est mon erreur svp ?
Code :
- if (!noRepeat($nom)) || (!noRepeat($prenom)) || (noRepeat($service)) || (noRepeat($email))
- {
- print $alerte_repetition;
- }
|
suis débutant, mais ca commence a me passionner grave php
enfin, quand ca marche....
Merci d'avance,
---------------
"Nous sommes tous dans le caniveau, mais certains d'entre nous regardent les étoiles" Oscar Wild