[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 : Équipe

Règles du forum
A lire impérativement sur notre page : Règlement

- Plus aucun support n'est délivré pour phpBB2 depuis le 1er janvier 2009
Avatar du membre
Vlad Tepesch
Grand-maître des floodeurs
Grand-maître des floodeurs
Messages : 3420
Enregistré le : 04 juil. 2005 à 17:23
Localisation : Paris
Contact :

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

Message par Vlad Tepesch »

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
baba78
Posteur néophyte
Posteur néophyte
Messages : 6
Enregistré le : 28 mai 2007 à 21:23

Message par baba78 »

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 ?
ErnadoO

Message par ErnadoO »

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
baba78
Posteur néophyte
Posteur néophyte
Messages : 6
Enregistré le : 28 mai 2007 à 21:23

Message par baba78 »

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
Enregistré le : 28 mai 2007 à 21:23

Message par baba78 »

C'est bon j'ai trouvé :wink:
AdAS33
Posteur néophyte
Posteur néophyte
Messages : 93
Enregistré le : 31 juil. 2007 à 21:15
Contact :

Message par AdAS33 »

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.
ErnadoO

Message par ErnadoO »

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?
psgman80
Posteur néophyte
Posteur néophyte
Messages : 73
Enregistré le : 28 mai 2007 à 22:00

Message par psgman80 »

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
ErnadoO

Message par ErnadoO »

En gros tu reproches au mod de faire son boulot; donc que veux tu que l'on fasse pour toi?
psgman80
Posteur néophyte
Posteur néophyte
Messages : 73
Enregistré le : 28 mai 2007 à 22:00

Message par psgman80 »

ben je c'est pas.

Pas grands chose.

Merci quand même :lol:
Mon site: LES DEMONS
Mon site: SC MOREUIL
ErnadoO

Message par ErnadoO »

Ah ben de rien :mrgreen:
ferrelas
Posteur néophyte
Posteur néophyte
Messages : 27
Enregistré le : 28 août 2007 à 21:01

Message par ferrelas »

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 =$
ErnadoO

Message par ErnadoO »

L'erreur est juste au dessus, il faut nous montere disons 5 lignes au dessus
ferrelas
Posteur néophyte
Posteur néophyte
Messages : 27
Enregistré le : 28 août 2007 à 21:01

Message par ferrelas »

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 =)
ErnadoO

Message par ErnadoO »

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:
Verrouillé

Retourner vers « Base de données des MODs »

Qui est en ligne

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