[phpBB-fr] Detection de l'ecriture SMS v1.0.3

Base de données des MODs de phpBB-fr : Télécharger des MODs ; demander du support .

Modérateur: Equipe

[phpBB-fr] Detection de l'ecriture SMS v1.0.3

Messagede Vlad Tepesch le 31 Oct 2006 à 09:25

MOD proposé par l'équipe des MODs.
  • MOD Titre: Détection de l'écriture SMS
  • MOD Auteur: Aramiil
  • MOD Traduction: n/a
  • Sujet officiel phpBB.com: n/a
  • MOD Description: Ce MOD détecte automatiquement l'écriture SMS et envoi un MP pour prévenir l'administrateur. Totalement configurable, tant au point de vu de la détection (par mots-clés ou par taille des mots) que des critères (nombre de mots et de lettres par mots) ou de l'action à effectuer (bloquage du message ou envoi d'un PM à l'administrateur).
  • MOD Version: 1.0.3
  • Compatibilité EasyMOD: Non testé
  • Niveau d'installation: Facile
  • Temps d'installation: 10 minutes
  • Téléchargements: Ici
  • Captures d'écran:
    • Image
    • Image
    • Image
  • Démonstrations:
    • n/a
  • Notes:
      la notice d'installation de ce mod se trouve dans Dectection_ecriture_SMS/français/Detection_Ecriture_SMS.txt
  • Mises à Jour / Correctifs:
    • Dans includes/functions.php, remplacer :


      Code: Tout sélectionner
      //
      //Fonction anti-sms
      //
      function sms_write($text, $mess_id, $action=1, $min_letter=3, $min_words=5, $percent=2, $admin_id=2)
      {

         //preparation des variables
         global $db;
         global $board_config;
         global $lang;
         $table_text  = preg_split("/[\s[:punct:]]+/",$text);
         $compte = 0;
         $count_text = count($table_text);
         
         //chargement au besoin du fichier contenant les clefs SMS
         if($board_config['SMS_use_file'])
         {
                $file = file('admin/SMS_words.txt');
            foreach($file as $t => $temp)
            {
               $file[$t] = rtrim($temp);
            }
            $ban_words = array_change_key_case($file, CASE_LOWER);
            $table_text = array_change_key_case($table_text, CASE_LOWER);
            $difference = array_diff($table_text, $ban_words);
            $compte = ($count_text - count($difference) == 0) ? '0' : ($count_text / $percent) + 1;
         } else {

            //verification de chaque mot
            for($t = 0; $t < $count_text; $t++)
            {
               if(strlen($table_text[$t]) <= $min_letter)
               $compte++;
            }
         }
         
         //test final
         if($count_text > $min_words && ($count_text / $percent) < $compte )
         {
            //on regarde ce que l'on doit faire
            if($action == 0)
            {
               message_die(GENERAL_ERROR, $lang['SMS_message']);
            } else {
               //on envoi un pm à l'admin
               $html_on = 1;
               $bbcode_on = 1;
               $smilies_on = 1;
               $attach_sig = 1;
               $user_sig = $lang['SMS_sign'];
               $sql = "SELECT user_id, username, user_notify_pm, user_email, user_lang, user_active
                  FROM " . USERS_TABLE . "
                  WHERE user_id = " . $admin_id;
               if ( !($result = $db->sql_query($sql)) )
               {
                  $error = TRUE;
                  $error_msg = $lang['No_such_user'];
               }
               $to_userdata = $db->sql_fetchrow($result);
               $to_username = $to_userdata['username'];
               $privmsg_subject = trim(strip_tags($lang['SMS_possible']));
               $bbcode_uid = make_bbcode_uid();
               $privmsg_message = prepare_message(sprintf($lang['SMS_error'], $mess_id, $board_config['server_name'] . $board_config['script_path'], $mess_id), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
               $msg_time = time();
               $sql_info = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig)
                  VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $privmsg_subject) . "', " . $admin_id . ", " . $to_userdata['user_id'] . ", $msg_time, '127.0.0.1', $html_on, $bbcode_on, $smilies_on, $attach_sig)";
               if ( !($result = $db->sql_query($sql_info, BEGIN_TRANSACTION)) )
               {
                  message_die(GENERAL_ERROR, "Could not insert/update private message sent info.", "", __LINE__, __FILE__, $sql_info);
               }
               $privmsg_sent_id = $db->sql_nextid();
               $sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
                  VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . str_replace("\'", "''", $privmsg_message) . "')";
               if ( !$db->sql_query($sql, END_TRANSACTION) )
               {
                  message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
               }
               $sql = "UPDATE " . USERS_TABLE . "
                  SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . "
                  WHERE user_id = " . $to_userdata['user_id'];
               if ( !$status = $db->sql_query($sql) )
               {
                  message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
               }
            }
         }
         return false;
      }


      par :

      Code: Tout sélectionner
      //
      //Fonction anti-sms
      //
      function sms_write($text, $mess_id, $action=1, $min_letter=3, $min_words=5, $percent=2, $admin_id=2)
      {

         //preparation des variables
         global $db;
         global $board_config;
         global $lang;
         $table_text  = preg_split("/[\s[:punct:]]+/",$text);
         $compte = 0;
         $count_text = count($table_text);
         $word_with_problems = $lang['SMS_words_with_problems'];
         
         
         //chargement au besoin du fichier contenant les clefs SMS
         if($board_config['SMS_use_file'])
         {
                $file = file('admin/SMS_words.txt');
            foreach($file as $t => $temp)
            {
               $file[$t] = rtrim($temp);
            }
            $ban_words = array_change_key_case($file, CASE_LOWER);
            $table_text = array_change_key_case($table_text, CASE_LOWER);
            $difference = array_diff($table_text, $ban_words);
           $sms_word = array_diff($table_text, $difference);
            foreach($sms_word as $mot)
            {
              if(count($sms_word) <= 1)
            {
             $word_with_problems = $lang['SMS_word_with_problems'];
               $word_with_problems .= $mot;
            }
            else
            {
             
             $word_with_problems .= $mot . ', ' ;
            }
            
            }
            $compte = ($count_text - count($difference) == 0) ? '0' : ($count_text / $percent) + 1;
         } else {

            //verification de chaque mot
            for($t = 0; $t < $count_text; $t++)
            {
               if(strlen($table_text[$t]) <= $min_letter)
               {
                  $compte++;
                  $word_with_problems .= $table_text[$t] . ', ';
               
               }
            }
         }
         
         //test final
         if($count_text > $min_words && ($count_text / $percent) < $compte )
         {
            //on regarde ce que l'on doit faire
            if($action == 0)
            {
                  message_die(GENERAL_ERROR, $lang['SMS_message'] . $word_with_problems);
            } else {
               //on envoi un pm à l'admin
               $html_on = 1;
               $bbcode_on = 1;
               $smilies_on = 1;
               $attach_sig = 1;
               $user_sig = $lang['SMS_sign'];
               $sql = "SELECT user_id, username, user_notify_pm, user_email, user_lang, user_active
                  FROM " . USERS_TABLE . "
                  WHERE user_id = " . $admin_id;
               if ( !($result = $db->sql_query($sql)) )
               {
                  $error = TRUE;
                  $error_msg = $lang['No_such_user'];
               }
               $to_userdata = $db->sql_fetchrow($result);
               $to_username = $to_userdata['username'];
               $privmsg_subject = trim(strip_tags($lang['SMS_possible']));
               $bbcode_uid = make_bbcode_uid();
               $privmsg_message = prepare_message(sprintf($lang['SMS_error'], $mess_id, $board_config['server_name'] . $board_config['script_path'], $mess_id), $html_on, $bbcode_on, $smilies_on, $bbcode_uid);
               $msg_time = time();
               $sql_info = "INSERT INTO " . PRIVMSGS_TABLE . " (privmsgs_type, privmsgs_subject, privmsgs_from_userid, privmsgs_to_userid, privmsgs_date, privmsgs_ip, privmsgs_enable_html, privmsgs_enable_bbcode, privmsgs_enable_smilies, privmsgs_attach_sig)
                  VALUES (" . PRIVMSGS_NEW_MAIL . ", '" . str_replace("\'", "''", $privmsg_subject) . "', " . $admin_id . ", " . $to_userdata['user_id'] . ", $msg_time, '127.0.0.1', $html_on, $bbcode_on, $smilies_on, $attach_sig)";
               if ( !($result = $db->sql_query($sql_info, BEGIN_TRANSACTION)) )
               {
                  message_die(GENERAL_ERROR, "Could not insert/update private message sent info.", "", __LINE__, __FILE__, $sql_info);
               }
               $privmsg_sent_id = $db->sql_nextid();
               $sql = "INSERT INTO " . PRIVMSGS_TEXT_TABLE . " (privmsgs_text_id, privmsgs_bbcode_uid, privmsgs_text)
                  VALUES ($privmsg_sent_id, '" . $bbcode_uid . "', '" . str_replace("\'", "''", $privmsg_message) . "')";
               if ( !$db->sql_query($sql, END_TRANSACTION) )
               {
                  message_die(GENERAL_ERROR, "Could not insert/update private message sent text.", "", __LINE__, __FILE__, $sql_info);
               }
               $sql = "UPDATE " . USERS_TABLE . "
                  SET user_new_privmsg = user_new_privmsg + 1, user_last_privmsg = " . time() . "
                  WHERE user_id = " . $to_userdata['user_id'];
               if ( !$status = $db->sql_query($sql) )
               {
                  message_die(GENERAL_ERROR, 'Could not update private message new/read status for user', '', __LINE__, __FILE__, $sql);
               }
            }
         }
         return false;
      }



      Et ajouter dans language/lang_french/lang_main.php après

      Code: Tout sélectionner
      //
      // That's all Folks!
      // -------------------------------------------------


      Code: Tout sélectionner
      $lang['SMS_words_with_problems'] = '<br><br><b>Mots détectés comme SMS dans votre message: </b>';
      $lang['SMS_word_with_problems'] = '<br><br><b>Mot détecté comme SMS dans votre message : </b>';


      Résultat :
        Image
Avatar de l’utilisateur
Vlad Tepesch
Codeur
Codeur
 
Messages: 3411
Inscription: 04 Juil 2005 à 16:23
Localisation: Paris

Messagede baba78 le 30 Mai 2007 à 19:44

Quand dans l'install ils disent :

#
#-----[ SQL ]----------------------------------------------
#

INSERT INTO `phpbb_config` VALUES ('restriction_sms', '');
INSERT INTO `phpbb_config` ( `config_name` , `config_value` )
VALUES (
'sms_texte', 'Ce forum n\'est pas un téléphone portable!<br>Merci de ne pas y poster des messages avec une écriture sms.');
INSERT INTO `phpbb_config` ( `config_name` , `config_value` )
VALUES (
'color_sms', 'red');


Il faut faire quoi ?
baba78
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: 28 Mai 2007 à 20:23

Messagede ErnadoO le 30 Mai 2007 à 19:47

Bonjour/Bonsoir ? Merci d'avance ?
La politesse n'est pas une option même sur un forum.

La politesse n'est pas une option

baba78 a écrit:Il faut faire quoi ?
Lire le centre de documentation
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Messagede baba78 le 30 Mai 2007 à 20:06

Bonjour,
Pourriez-vous me donner le lien du topic dont il s'agit SVP car je ne sais pas c'est lequel.
Merci
baba78
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: 28 Mai 2007 à 20:23

Messagede baba78 le 30 Mai 2007 à 20:31

C'est bon j'ai trouvé :wink:
baba78
Posteur néophyte
Posteur néophyte
 
Messages: 6
Inscription: 28 Mai 2007 à 20:23

Messagede AdAS33 le 06 Aoû 2007 à 11:14

Formulaire a écrit:phpBB-fr : Demande de support

Bonjour/Bonsoir ,

Version de phpBB utilisée : phpBB v 2.0.22
Nom de votre hébergeur : OVH
Liste des mods installés :
BBCode player

Adresse de votre forum : http://www.acetrues-secours.com/phpBB
Identifiant du compte test :
pseudo : test
mot de passe : test1234

Votre demande de support est une question
(Ne remplir le champ suivant uniquement si votre demande de support est une simple question).

Votre/vos question(s):

Votre demande de support est la résolution d'un message d'erreur
(Ne remplir les champs suivant uniquement si votre demande de support concerne la résolution d'un message d'erreur).

Aprés l'installation de ce mod, je n'est pas le panneau des paramètres pour Anti-sms dans le Panneau d'Admin.
J'obtient ces messages dans le phpAdmin lors de la requete SQL.
Que faire ?

Message d'erreur complet:

Erreur
requête SQL:

INSERT INTO `phpbb_config` ( `config_name` , `config_value` )
VALUES (

'SMS_detect', '1'
);



MySQL a répondu:

#1062 - Duplicate entry 'SMS_detect' for key 1


puis

requête SQL:SELECT *
FROM `phpbb_config`
WHERE CONCAT_WS( "-", `config_name` , `config_value` ) = "sms_detect"
ORDER BY `config_name` , `config_value`
LIMIT 0 , 30



Adresse vers le fichier de l'erreur (Format texte !):

Merci et à bientôt.
AdAS33
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 31 Juil 2007 à 20:15

Messagede ErnadoO le 13 Aoû 2007 à 19:54

concernant l'erreur sql, c'est que tu as déjà fais les requêtes.
Pour le panneau de paramétrage, as tu bien édité le non thème?
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Messagede psgman80 le 26 Aoû 2007 à 20:55

Bonjour,

J'ai mis comme mot interdit "com".

mais quand on rentre une adresse internet avec lesite.com il interdit de le poster car ya .com

Merci pour votre aide
Mon site: LES DEMONS
Mon site: SC MOREUIL
psgman80
Posteur néophyte
Posteur néophyte
 
Messages: 73
Inscription: 28 Mai 2007 à 21:00

Messagede ErnadoO le 26 Aoû 2007 à 20:59

En gros tu reproches au mod de faire son boulot; donc que veux tu que l'on fasse pour toi?
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Messagede psgman80 le 26 Aoû 2007 à 21:05

ben je c'est pas.

Pas grands chose.

Merci quand même :lol:
Mon site: LES DEMONS
Mon site: SC MOREUIL
psgman80
Posteur néophyte
Posteur néophyte
 
Messages: 73
Inscription: 28 Mai 2007 à 21:00

Messagede ErnadoO le 26 Aoû 2007 à 21:11

Ah ben de rien :mrgreen:
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Messagede ferrelas le 30 Aoû 2007 à 12:19

Formulaire a écrit:phpBB-fr : Demande de support

Bonjour/Bonsoir ,

Version de phpBB utilisée:2.0.22
Nom de votre hébergeur:hostarea
Liste des mods installés:Detection de l'écriture sms.
Adresse de votre forum:http://michelet82.hostarea.org/
Identifiant du compte test:


Votre demande de support est la résolution d'un message d'erreur
(Ne remplir les champs suivant uniquement si votre demande de support concerne la résolution d'un message d'erreur).

Le message d'erreur ci-dessous s'affiche dans mon panel administration ( le coté gauche, je vois pas comment etre plus clair :s ) alors que le coté droit de l'administration s'affiche parfaitement.

Message d'erreur complet:
Parse error: syntax error, unexpected T_IF, expecting ')' in /home/web/clients/michelet82.hostarea.org/www/admin/admin_board.php on line 317

Adresse vers le fichier de l'erreur (Format texte !):

Merci et à bientôt.



Et voila ce que j'obtiens a la ligne 317 d'admin_board.php

Code: Tout sélectionner
if( isset($HTTP_POST_VARS['submit']) )

Je vois pas où est l'erreur =$
ferrelas
Posteur néophyte
Posteur néophyte
 
Messages: 27
Inscription: 28 Aoû 2007 à 20:01

Messagede ErnadoO le 30 Aoû 2007 à 12:24

L'erreur est juste au dessus, il faut nous montere disons 5 lignes au dessus
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Messagede ferrelas le 30 Aoû 2007 à 12:26

Code: Tout sélectionner
   "L_USE_SMS" => $lang['sms_use'],
   "L_SMS_ACTION" => $lang['sms_action'],
   "L_SMS_BLOQUE" => $lang['sms_bloque'],
   "L_SMS_PM" => $lang['sms_pm'],
   "L_SMS_LETTER" => $lang['sms_letter'],
   "L_SMS_WORDS" => $lang['sms_word'],
   "L_SMS_PERCENT" => $lang['sms_percent'],
   "L_SMS_ADMIN" => $lang['sms_admin'],
   "L_SMS_SETTINGS" => $lang['sms_settings'],
   "L_SMS_BAN_WORDS" => $lang['sms_ban_words'],
   "L_SMS_USE_FILE" => $lang['sms_use_file'],
   "L_SMS_FILE" => $lang['sms_file'],
   "L_SMS_NORMAL" => $lang['sms_normal'],
   "SMS_YES" => $sms_yes,
   "SMS_NO" => $sms_no,
   "SMS_BLOQUE" => $sms_close,
   "SMS_PM" => $sms_pm,
   "SMS_LETTER" => $new['SMS_min_letter'],
   "SMS_WORDS" => $new['SMS_min_words'],
   "SMS_PERCENT" => $new['SMS_percent'],
   "SMS_ADMIN" => $new['SMS_admin'],
   "SMS_BAN_WORDS" => $sms_ban,
   "SMS_FILE" => $sms_file,
   "SMS_NORMAL" => $sms_normal,
   
   if( isset($HTTP_POST_VARS['submit']) )



Voila =)
ferrelas
Posteur néophyte
Posteur néophyte
 
Messages: 27
Inscription: 28 Aoû 2007 à 20:01

Messagede ErnadoO le 30 Aoû 2007 à 13:03

Oulala mais qu'est ce que tu nous as fais? :D
Ce bout de code ne va pas du tout où tu l'as placé mais plus bas
:wink:
ErnadoO · Administrateur et responsable de l'équipe des MODs par intérim
Tu as l'âme d'un codeur? l'équipe des MODs recrute toute l'année!
Tout sur l'installation d'un MOD || Intro à la création de MOD || Erreurs fréquentes lors de l'installation de MODs || Mes MODS

phpBB-Services.com: L'hébergement et l'assistance de votre forum phpBB en toute tranquillité.
Dead zone: LA référence francophone sur la série télé Dead zone: photos, résumés, captures, videos, forum.
Aidez la SPA à nourrir un animal abandonné: http://www.clicanimaux.com/
Avatar de l’utilisateur
ErnadoO
Administrateur et resp. des codeurs
Administrateur et resp. des codeurs
 
Messages: 20177
Inscription: 21 Juin 2003 à 12:42
Localisation: Brest/Quimper/Calais

Suivante

Retourner vers Base de données des MODs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •