Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OUTIL DE SUPRESSION DE SPAM INTEGRÉ À PHPBB


Information sur la source

Catégorie :Divers Classé sous : phpbb, spam, supprimer Niveau : Débutant Date de création : 06/11/2006 Date de mise à jour : 22/11/2006 17:31:04 Vu : 4 925

Note :
2,5 / 10 - par 2 personnes
2,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Cet outil prend l'id d'un post en paramètre ( POST ) et ajoute le posteur dans la banlist, désactive son compte et supprime le message.
Pratique pour du Spam.
Ce code est complètement intégrable à PhpBB, il est donc capable d'utiliser toutes les sources de données gérées par ce dernier.

 

Source

  • <?php
  • //////////////////////////////////////////////////////
  • //
  • // RemoveSpam By Thomas K ( http://iow4.net )
  • //
  • /////////////////////////////////////////////////////
  • define('IN_PHPBB', true);
  • $phpbb_root_path = './';
  • include($phpbb_root_path.'extension.inc');
  • //================================================
  • // 1er Vérification du parametre contenant l'id du post
  • //================================================
  • if (empty($_POST['post_id']))
  • {
  • exit('Erreur : Parametre post_id requis');
  • }
  • //===================================================
  • // 2eme Vérification du parametre contenant l'id du post
  • //===================================================
  • include($phpbb_root_path.'config.'.$phpEx);
  • include($phpbb_root_path.'includes/db.'.$phpEx);
  • include($phpbb_root_path.'includes/constants.'.$phpEx);
  • if (!($topic_info = $db->sql_fetchrow($db->sql_query('SELECT * FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\''))))
  • {
  • exit('Erreur : Parametre post_id errone');
  • }
  • //====================================================
  • // On met l'user qui a posté dans la liste de bannis
  • //====================================================
  • if (!$db->sql_query('INSERT INTO '.$table_prefix."banlist VALUES('','".$topic_info['poster_id']."','".$topic_info['poster_ip']."','') "))
  • {
  • exit('Erreur : Insertion de l\'utilisateur dans la banlist impossible');
  • }
  • //==========================
  • // On desactive son compte
  • //==========================
  • if (!$db->sql_query('UPDATE '.$table_prefix.'users SET user_active=\'0\' WHERE user_id=\''.$topic_info['poster_id'].'\''))
  • {
  • exit('Erreur : Desactivation du compte spammeur impossible');
  • }
  • //=================================
  • // On suprime le message SPAM
  • //=================================
  • if (!($db->sql_query('DELETE FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\'')) OR !($db->sql_query('DELETE FROM '.$table_prefix."posts_text WHERE post_id='".$_POST['post_id']."'")))
  • {
  • exit('Erreur : Supression du message SPAM impossible');
  • }
  • //=================================
  • // redirection
  • //=================================
  • header("location:$phpbb_root_path");
  • ?>
<?php
//////////////////////////////////////////////////////
//
// RemoveSpam By Thomas K ( http://iow4.net ) 
//
/////////////////////////////////////////////////////

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path.'extension.inc');

//================================================
//  1er Vérification du parametre contenant l'id du post
//================================================

if (empty($_POST['post_id']))
{
	exit('Erreur : Parametre post_id requis');
}

//===================================================
//  2eme Vérification du parametre contenant l'id du post
//===================================================

include($phpbb_root_path.'config.'.$phpEx);
include($phpbb_root_path.'includes/db.'.$phpEx);
include($phpbb_root_path.'includes/constants.'.$phpEx);

if (!($topic_info = $db->sql_fetchrow($db->sql_query('SELECT * FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\''))))
{
	exit('Erreur : Parametre post_id errone'); 
}

//====================================================
// On met l'user qui a posté dans la liste de bannis 
//====================================================

if (!$db->sql_query('INSERT INTO '.$table_prefix."banlist VALUES('','".$topic_info['poster_id']."','".$topic_info['poster_ip']."','') "))
{
	exit('Erreur : Insertion de l\'utilisateur dans la banlist impossible');
}

//==========================
// On desactive son compte 
//==========================

if (!$db->sql_query('UPDATE '.$table_prefix.'users SET user_active=\'0\' WHERE user_id=\''.$topic_info['poster_id'].'\''))
{
	exit('Erreur : Desactivation du compte spammeur impossible');
}

//=================================
// On suprime le message SPAM
//=================================

if (!($db->sql_query('DELETE FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\'')) OR !($db->sql_query('DELETE FROM '.$table_prefix."posts_text WHERE post_id='".$_POST['post_id']."'")))
{
	exit('Erreur : Supression du message SPAM impossible');
}

//=================================
// redirection 
//=================================

header("location:$phpbb_root_path");
?>


Conclusion

Mettez ce script à la racine de votre Phpbb et ajouté un bouton sur les templates qui transmet en POST dans un champ caché le champ post_id qui est l'id du post à supprimer.
J'attend vos commentaires, vos propositions d'optimisation, vos critiques
 

Historique

22 novembre 2006 17:31:05 :
Changement de niveau

Commentaires et avis

signaler à un administrateur
Commentaire de coucou747 le 07/11/2006 13:05:07

?? et ?? en quoi c'est un truc expert ? t'as juste fait un code qui supprime un message...

signaler à un administrateur
Commentaire de iow4 le 07/11/2006 17:49:06

rou non ! Ca suprime le message, ajoute le posteur à la banlist et desactive le compte du posteur !

En plus c'est un exemple d'intégration de script à Phpbb car j'implemente leur classe d'exploitation de SGBD ( donc compatible avec toutes les bdd reconnut par Phpbb ) j'utilise aussi leur systeme de nom de fichier variable.

J'ai codé ce script car je trouve ça utile de pouvoir faire 3 action en cliquant sur un bouton quand le spam à reussie à s'infiltrer sur le forum  

signaler à un administrateur
Commentaire de Oyodarkenshin le 07/11/2006 18:53:27

header("location:$phpbb_root_path"); -> bouh !
$_POST -> pas standard en phpBB

phpBB a créé une fonction redirect($url);
phpBB utlise $HTTP_POST_VARS et non $_POST

Il n'est pas totalement intégré à phpBB voila quelque chose d'intégré:
<?php
//////////////////////////////////////////////////////
//
// RemoveSpam By Thomas K ( http://iow4.net )
//
/////////////////////////////////////////////////////
  
define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

//================================================
// 1er Vérification du parametre contenant l'id du post
//================================================
  
if (empty($HTTP_POST_VARS['post_id']))
{
    message_die(GENERAL_ERROR, 'Erreur : Parametre post_id requis');
}
  
//===================================================
// 2eme Vérification du parametre contenant l'id du post
//===================================================
  
  
if (!($topic_info = $db->sql_fetchrow($db->sql_query('SELECT * FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\''))))
{
    message_die(GENERAL_ERROR, 'Erreur : Parametre post_id errone');
}
  
//====================================================
// On met l'user qui a posté dans la liste de bannis
//====================================================
  
if (!$db->sql_query('INSERT INTO '.$table_prefix."banlist VALUES('','".$topic_info['poster_id']."','".$topic_info['poster_ip']."','') "))
{
    message_die(GENERAL_ERROR, 'Erreur : Insertion de l\'utilisateur dans la banlist impossible');
}
  
//==========================
// On desactive son compte
//==========================
  
if (!$db->sql_query('UPDATE '.$table_prefix.'users SET user_active=\'0\' WHERE user_id=\''.$topic_info['poster_id'].'\''))
{
    message_die(GENERAL_ERROR, 'Erreur : Desactivation du compte spammeur impossible');
}
  
//=================================
// On suprime le message SPAM
//=================================
  
if (!($db->sql_query('DELETE FROM '.$table_prefix.'posts WHERE post_id=\''.$_POST['post_id'].'\'')) OR !($db->sql_query('DELETE FROM '.$table_prefix."posts_text WHERE post_id='".$_POST['post_id']."'")))
{
    message_die(GENERAL_ERROR, 'Erreur : Supression du message SPAM impossible');
}
  
//=================================
// redirection
//=================================
  
redirect(append_sid('index.'.$phpEx, true));

// Start output of page
$page_title = 'Outil de suppression de SPAM ~ PphpBB';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

signaler à un administrateur
Commentaire de Oyodarkenshin le 07/11/2006 18:58:29

Quand je dis "bouh !" il ne faut pas le prendre mal ;)

Arf oups! je me suis planté dans le code voila le bon code, forcement j'utilisais pas les constantes défini dans le fichier constants.php inclus dans le fichier common.php (tout comme config.php, includes/db.php)
<?php
//////////////////////////////////////////////////////
//
// RemoveSpam By Thomas K ( http://iow4.net )
//
/////////////////////////////////////////////////////
  
define('IN_PHPBB', true);

$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start session management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
// End session management

//================================================
// 1er Vérification du parametre contenant l'id du post
//================================================
  
if (empty($HTTP_POST_VARS['post_id']))
{
    message_die(GENERAL_ERROR, 'Erreur : Parametre post_id requis');
}
  
//===================================================
// 2eme Vérification du parametre contenant l'id du post
//===================================================
  
  
if (!($topic_info = $db->sql_fetchrow($db->sql_query('SELECT * FROM '.POSTS_TABLE.' WHERE post_id=\''.$_POST['post_id'].'\''))))
{
    message_die(GENERAL_ERROR, 'Erreur : Parametre post_id errone');
}
  
//====================================================
// On met l'user qui a posté dans la liste de bannis
//====================================================
  
if (!$db->sql_query('INSERT INTO '.BANLIST_TABLE." VALUES('','".$topic_info['poster_id']."','".$topic_info['poster_ip']."','') "))
{
    message_die(GENERAL_ERROR, 'Erreur : Insertion de l\'utilisateur dans la banlist impossible');
}
  
//==========================
// On desactive son compte
//==========================
  
if (!$db->sql_query('UPDATE '.USERS_TABLE.' SET user_active=\'0\' WHERE user_id=\''.$topic_info['poster_id'].'\''))
{
    message_die(GENERAL_ERROR, 'Erreur : Desactivation du compte spammeur impossible');
}
  
//=================================
// On suprime le message SPAM
//=================================
  
if (!($db->sql_query('DELETE FROM '.POSTS_TABLE.' WHERE post_id=\''.$_POST['post_id'].'\'')) OR !($db->sql_query('DELETE FROM '.$table_prefix."posts_text WHERE post_id='".$_POST['post_id']."'")))
{
    message_die(GENERAL_ERROR, 'Erreur : Supression du message SPAM impossible');
}
  
//=================================
// redirection
//=================================
  
redirect(append_sid('index.'.$phpEx, true));

// Start output of page
$page_title = 'Outil de suppression de SPAM ~ PphpBB';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

signaler à un administrateur
Commentaire de iow4 le 07/11/2006 19:53:31

Le fichier common.php n'est pas très legé, autant s'en passer
non ?

signaler à un administrateur
Commentaire de Oyodarkenshin le 07/11/2006 20:32:22

oui et non, mais c'est la base de fonctionnement de phpBB.
Sachant pas la même occa's (si je peux me permettre) que c'est dans ce fichier qu'il traite toutes les super globals.

Mais bon après à toi de voir mais dans ce cas ne dit pas que "Ce code est complètement intégrable à phpBB" puisqu'il n'utilise pas les normes de phpBB ;)

signaler à un administrateur
Commentaire de iow4 le 07/11/2006 22:36:00

Ok je vais modifier mon code alors :

- Changement de $_POST en $HTTP_POST_VARS
- Utilisation de constantes pour le nom des tables

Pour ceux qui est de l'affichage graphique de phpbb ce n'est pas le but de la source donc une simple redirection suffira

as tu d'autres suggestions ??
merci

signaler à un administrateur
Commentaire de Oyodarkenshin le 07/11/2006 23:05:32

Non normalement le 2eme code donnée est au normes ;)

tu peux simplement ne pas inclure page_header et page_tail ;)

signaler à un administrateur
Commentaire de coucou747 le 08/11/2006 14:41:36

J'ai pas dit qu'il était pas utile... mais en vennant ici, pour un code expert, j'aurais au moins aimé trouver un réseau bayesien...
cf http://fr.wikipedia.org/wiki/Inf%C3%A9rence_bay%C3%A9sienne

pour détecter les spams, insumltes, floood, [...] automatiquement.

signaler à un administrateur
Commentaire de JulioDelphi le 08/11/2006 14:53:45 administrateur CS

iow4 : comme le signale coucou, merci de faire baisser le niveau de la source vers "debutant" plutot que "expert"

signaler à un administrateur
Commentaire de kankrelune le 13/11/2006 12:57:33

Inutile de parler du niveau de cette source d'autres l'ont déja fait... cependant moi un truc qui me fait bondir c'est quand je vois...

"phpBB utlise $HTTP_POST_VARS et non $_POST"

Inutile (peut être pas) de rappeler que $HTTP_POST_VARS est déprécié et qu'il faut utiliser $_POST... y en a qui vont faire la gueule quand php6 va sortir... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de Oyodarkenshin le 13/11/2006 18:29:57

Oui mais non, enfaite phpBB utilise $HTTP_*_VARS car il font en traitement dessus dans common.php.
De plus, au début il déclare que

$HTTP_*_VARS = $_*;

Voila ;)

signaler à un administrateur
Commentaire de kankrelune le 13/11/2006 18:47:59

Oui j'imagine... mais à ce moment là autant utiliser directement $_POST... le traitement fait dans common.php est là pour palier aux mauvaises habitudes de codage en attendant la réécriture du core... c'est pareil pour beaucoups de CMS comptant plusieurs milliers de lignes de code... mais ça ne dispense pas d'utiliser $_POST... .. . ;o)

@ tchaOo°

signaler à un administrateur
Commentaire de Oyodarkenshin le 14/11/2006 19:09:27

hum c'est pour garder une rétrocompatibilité avec php 4 et < ;)

signaler à un administrateur
Commentaire de kankrelune le 15/11/2006 10:31:17

Parce que ça existe encore un serveur qui tourne sous php 3... lol... j'en doute... sachant que les tableaux super globaux $_* ont étés introduit dans la version 4.1.0 et que la version minimum de php requise par phpbb est php 4.0.3... c'est un choix stratégique que je ne remet pas en cause mais que je ne trouve pas justifié... après c'est la même chose pour beaucoups de gros script... on a eu la même prise de tête avec xoops et on l'a encore... .. .

@ tchaOo°

signaler à un administrateur
Commentaire de JulioDelphi le 15/11/2006 11:13:21 administrateur CS

moi je dis souvent "si ça ne fonctionne pas, la faute est a celui qui n'est pas a jour"
pas de debat =)

signaler à un administrateur
Commentaire de iow4 le 22/11/2006 17:29:29

De toute façon je voie pas l'avantage d'utiliser $HTTP_POST_VARS meme  si phpbb fait un traitement dessus ( je crois que phpbb fait ses propres magic quote dessus )

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Section Membres PHPBB !! ;) [ par pi0up51 ] Slut !! ;)J'sui debutant en php et je voudrai savoir une chose ou plutot si qqn pourrait m'aider !!Je dispose du forum phpBB et je voudrai utiliser la Supprimer des lignes en debut de fichier [ par obelix3200 ] Je voudrait supprimer les 20 premieres ligne d'un fichier HTML, je n'ai absolument aucune idee la...un ptit coup de pouce ?merci d'avance . effacement d'un fichier a la fermeture d'une page [ par wismergor ] bonjours a tousj'aimerai si c'est possible supprimer un fichier sur un FTP lorsque l'on ferme la fenetre.pour supprimer en php je n'ai pas de probleme Suppression de fichiers [ par TRASH52 ] TRASH52Peut-on supprimer un dossier sans à avoir besoin de supprimer chaque élément qu Enregistrement avec tableau?? [ par rich25200 ] bonjour,j'ai un tableau qui est alimenter par une requete SQL.... et en face de chaque enregistrement j'ai deux boutons un modifier et l'autre supprim supprimer le plus ancien fichier modifié [ par sofie16 ] Bonjour, j'ai fait une sorte de galerie où les visiteur peuvent envoyer des photoset j'aimerais (quand le nombre d'image maximal est atteint) pouvoir supprimer un fichier [ par SatanCorporation ] salut a tous comment on fait pour supprimer un fichier merci d'avance supprimer source [ par revinc ] salut vous tous!quelqu'un peut me dire comment je peux faire pour supprimer une de mes sources du réseau???Re|V|inc Suppression d'un enregistrement [ par Hicks ] Salut les gars je me suis mis au php depuis environ une semaine.J'arrive a communiquer avec ma base , a en sortir des données mais la depuis hier j'es Supprimer les .html d'un répertoire [ par twiems ] Twiems:PJe souhaiterais supprimer tous les fichiers d'extension .html d'un dossier nommé chambre mais je n'y parvient pas.Si vous pouviez m'aider je v


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.