begin process at 2010 03 12 22:16:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > OUTIL DE SUPRESSION DE SPAM INTEGRÉ À PHPBB

OUTIL DE SUPRESSION DE SPAM INTEGRÉ À PHPBB


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :6 378

Auteur : iow4

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
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

 Sources du même auteur

PGCD : ALGORITHME D'EUCLIDE PAR RECURSIVITÉ
ZONE MEMBRE EN SYMBIOSE AVEC LE FORUM PHPBB

 Sources de la même categorie

CALCUL D'UNE DISTANCE ORTHONORMIQUE par bossfoot
Source avec Zip ESPACE ADMIN SIMPLE par mousaid_88
Source avec Zip IMAGINE-CMS V2.20 par djack69
Source avec Zip AFFICHAGE ET GESTION DE DIAPORAMA EN PHP SANS BASE DE DONNÉE... par mldvb
Source avec Zip Source avec une capture PARSER ALLOCINE par cyrhades

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AFFICHER UN CODE, UN TEXTE, SOUS LA FORME D'UNE IMAGE PLUS O... par bluemandfr
CRÉER UNE IMAGE GIF TRANSPARENT CONTENANT UN TEXTE par dorch
Source avec Zip Source avec une capture CAPTCHA 3D ISO & LECTURE DE FONT CONSOLE par coucou747
Source avec Zip Source avec une capture POURQUOI LES CAPTCHA NE SONT-ILS PAS TOUS SUR ? par coucou747
ANTI SPAM PHP par ABCS

Commentaires et avis

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

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  

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);
?>

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);
?>

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 ?

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 ;)

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

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 ;)

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.

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"

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°

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 ;)

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°

Commentaire de Oyodarkenshin le 14/11/2006 19:09:27

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

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°

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

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 )

Commentaire de marek_wit le 23/03/2009 23:35:46

Bonne soir!

Esque il existe des codes html, que je puisse écrire une news et ensuit, avoir une fonction admin, pour efface le news ..

Mais, sans passer par la base SQL ... Merci 1000 fois!!!! c pour l'ecole ...

 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


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales