Empêcher l'édition de messages après 15 minutes [Réglé]
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
En ce moment, je suis confronté à des membres qui s'inscrivent, postent quelques messages assez vague sur des sujets au hasard, (et d'un point de vue modérateur OK) mais qui reviennent 2 jours plus tard, éditent leurs messages et insère du contenu indésirable (pub ...)
Je souhaiterais bloquer le mécanisme d'édition aux membres au delà de 15 minutes par exemple.
Il me semble que mon prédécesseur administrateur du site (DaaX vous connaissez ?) avait réussi à mettre ce mécanisme en place.
C'est possible en v4.0.6?
Administrateur de mon site perso linuxtricks.fr
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
pas plus simple de directement supprimer les messages (de plus en plus de bot font cette technique) ?
Cordialement, janus57
Édité par janus57 Le 07/08/2015 à 22h49
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
La chasse aux messages édités et au bannissement ... Car les messages non lus, lus le jour J, sont corrects
Administrateur de mon site perso linuxtricks.fr
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
en général non il ne sont pas correcte, ils sont incohérent et comporte 90% de mots issue de la même page voir de la description du site.
C'est déjà arrivé sur phpboost.com et dès que je vois un message "bizarre" je le signale, après c'est au modo de faire le choix de le supprimer ou non (très facilement visible si c'est un spam ou non avec son mail et/ou ip).
De plus en plus de bot utilisant se principe spam les forum.
Quant à la question initiale aucune idée, je dirais que c'est possible mais cela risque de bloquer aussi les membres (ce qui est dommageable surtout sur un forum d'aide).
Cordialement, janus57
ElenWii Membre non connecté
-
Administrateur
- Voir le profil du membre ElenWii
- Inscrit le : 14/08/2009
- Site internet
- Groupes :
-
Equipe Graphique
Ca devrait ce passer vers les lignes 500environ du fichier post.php.
Juste avant :
Code PHP :
if (!$check_auth) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); }
Pour le code exact, je laisse un developpeur
Fantole Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Fantole
- Inscrit le : 28/05/2008
Code PHP :
** OUVRIR ** forum/post.php ** TROUVER ** if ($user_id_msg == $User->get_attribute('user_id')) $check_auth = true; ** REMPLACER PAR ** if ($user_id_msg == $User->get_attribute('user_id')) { $edit_limit = $Sql->query_array(PREFIX . 'forum_msg', 'timestamp', 'timestamp_edit', "WHERE id = '" . $id_m . "'", __LINE__, __FILE__); if ($edit_limit['timestamp_edit'] > 0 && $edit_limit['timestamp_edit'] <= time() && $edit_limit['timestamp_edit'] >= time()-900 || $edit_limit['timestamp'] == 0 && $edit_limit['timestamp'] <= time() && $edit_limit['timestamp'] >= time()-900) { $check_auth = true; } }
Édité par Fantole Le 11/08/2015 à 13h05
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet

Je cherche à comprendre pourquoi
Edit : Trouvé, c'est pas $edit_limit['timestamp'] == 0 qu'il faut mettre mais $edit_limit['timestamp_edit'] == 0
Édité par Adrien.D Le 15/08/2015 à 09h35
Administrateur de mon site perso linuxtricks.fr
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
Ce code est présent à 2 endroits (ligne ~450 et ~750)
Si je place le code ligne 750 : OK sauf pour le premier message.
Si je place aussi le code ligne 750 : OK mais les modos ne peuvent pas non plus éditer le premier message ...
Edit : non, si on édite son propre message et qu'on est modo ça ne fonctionne pas. je tente avec dans le if la condition && !$is_modo et ça semble être OK.
Édité par Adrien.D Le 15/08/2015 à 11h07
Administrateur de mon site perso linuxtricks.fr
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
Code PHP :
--- post.php.sav2015-08-15 09:07:36.520649021 +0200 +++ post.php2015-08-15 11:07:09.893780737 +0200 @@ -469,8 +469,19 @@ //User_id du message correspondant à l'utilisateur connecté => autorisation. $user_id_msg = $Sql->query("SELECT user_id FROM " . PREFIX . "forum_msg WHERE id = '" . $id_m . "'", __LINE__, __FILE__); $check_auth = false; -if ($user_id_msg == $User->get_attribute('user_id')) -$check_auth = true; +// Adrien.D : Modif edit 15mn 1er message +//if ($user_id_msg == $User->get_attribute('user_id')) +//$check_auth = true; +if ($user_id_msg == $User->get_attribute('user_id') && !$is_modo) +{ +$edit_limit = $Sql->query_array(PREFIX . 'forum_msg', 'timestamp', 'timestamp_edit', "WHERE id = '" . $id_m . "'", __LINE__, __FILE__); + +if ($edit_limit['timestamp_edit'] > 0 && $edit_limit['timestamp_edit'] <= time() && $edit_limit['timestamp_edit'] >= time()-900 || $edit_limit['timestamp_edit'] == 0 && $edit_limit['timestamp'] <= time() && $edit_limit['timestamp'] >= time()-900) +{ +$check_auth = true; +} +} +//Fin modif elseif ($is_modo) $check_auth = true; @@ -772,8 +783,19 @@ //User_id du message correspondant à l'utilisateur connecté => autorisation. $user_id_msg = $Sql->query("SELECT user_id FROM " . PREFIX . "forum_msg WHERE id = '" . $id_m . "'", __LINE__, __FILE__); $check_auth = false; -if ($user_id_msg == $User->get_attribute('user_id')) -$check_auth = true; +// Adrien.D : Modif edit 15mn Messages du topic +//if ($user_id_msg == $User->get_attribute('user_id')) +//$check_auth = true; +if ($user_id_msg == $User->get_attribute('user_id') && !$is_modo) +{ +$edit_limit = $Sql->query_array(PREFIX . 'forum_msg', 'timestamp', 'timestamp_edit', "WHERE id = '" . $id_m . "'", __LINE__, __FILE__); + +if ($edit_limit['timestamp_edit'] > 0 && $edit_limit['timestamp_edit'] <= time() && $edit_limit['timestamp_edit'] >= time()-900 || $edit_limit['timestamp_edit'] == 0 && $edit_limit['timestamp'] <= time() && $edit_limit['timestamp'] >= time()-900) +{ +$check_auth = true; +} +} +//Fin modif elseif ($is_modo) $check_auth = true;
Administrateur de mon site perso linuxtricks.fr
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
Comment attribuer cette limite qu'aux membres ayant moins de 50 messages ?
Je vois qu'il faut ajouter une condition dans le if du style
&& $nb_msg > 50
mais comment récupérer le nombre de messages ?
Administrateur de mon site perso linuxtricks.fr
j1.seth Membre non connecté
-
Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
-
Chef de Projet
-
Equipe Développement
Tu peux essayer un truc du genre :
Code PHP :
$nb_msg = PersistenceContext::get_querier()->get_column_value(DB_TABLE_MEMBER, 'user_msg', 'WHERE user_id = :id', array('id' =>$User->get_attribute('user_id')))
Adrien.D Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre Adrien.D
- Inscrit le : 10/02/2013
- Site internet
Code PHP :
$nb_msg = $Sql->query("SELECT count(id) FROM " . PREFIX . "forum_msg WHERE user_id='".$user_id_msg."'", __LINE__, __FILE__); if ($edit_limit['timestamp_edit'] > 0 && $edit_limit['timestamp_edit'] <= time() && $edit_limit['timestamp_edit'] >= time()-900 || $edit_limit['timestamp_edit'] == 0 && $edit_limit['timestamp'] <= time() && $edit_limit['timestamp'] >= time()-900 || $nb_msg > 20)
Je vais voir ta solution
Édité par Adrien.D Le 03/10/2015 à 08h50
Administrateur de mon site perso linuxtricks.fr
MickaelFR Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
Existe t-il une solution pour la v3? Ceci luterai énormément contre le nouveau phénomène des spams (inscription, message aléatoire, et édition plus tard pour y insérer un message publicitaire .. Chose qu'on ne prête pas forcément attention).
Merci par avance
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie