Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

Reply
 
Thread Tools
Prevent Users With Low Post Counts Posting/PM'ing URLS Details »»
Prevent Users With Low Post Counts Posting/PM'ing URLS
Version: 1.00, by NTLDR (Coder) NTLDR is offline
Developer Last Online: Oct 2004 Show Printable Version Email this Page

Version: 3.0.0 Rating:
Released: 01-10-2004 Last Update: Never Installs: 62
 
No support by the author.

Title: Prevent members with low post count posting/pm'ing urls.
Author: NTLDR
Version: 1.0.1
vB Compatibility: vB3 Gamma, RC1, RC2

Description: I created this hack a while ago for use on my board to prevent people signing up and just posting a URL. This hack will prevent users with less than X posts from PM'ing or posting URLs.

File edits:

In includes/functions_newpost.php find:

PHP Code:
        eval('$errors[] = "' fetch_phrase('toomanyimages'PHRASETYPEID_ERROR) . '";');
    } 
Add after:

PHP Code:
$errors array_merge($errorsverify_message_urls($post['message'])); 
Find:

PHP Code:
    return sizeof($errors);

Add after (making sure you change REPLACE_NUMBER_OF_POSTS_HERE to the number of posts a user must have before being able to post/pm URLS):

PHP Code:
function verify_message_urls($pagetext) {

    global 
$vboptions$vbphrase$bbuserinfo;

    
$errors = array();

    if (
$bbuserinfo['posts'] < REPLACE_NUMBER_OF_POSTS_HERE) {
        if (
THIS_SCRIPT == 'newthread' || THIS_SCRIPT == 'newreply' || THIS_SCRIPT == 'editpost') {
            
$typephrase $vbphrase['post'];
        } elseif (
THIS_SCRIPT == 'private') {
            
$typephrase $vbphrase['private_message'];
        } else {
            
$typephrase $vbphrase['message'];
        }

        if (
preg_match('/\[url/i'$pagetext)) {
            eval(
'$errors[] = "' fetch_phrase('x_contains_urls'PHRASETYPEID_ERROR) . '";');
            
$errored true;
        }

        
$pagetext strip_bbcode($pagetext);

        if (!
$errored && preg_match('/h(\s*)t(\s*)t(\s*)p/i'$pagetext)) {
            eval(
'$errors[] = "' fetch_phrase('x_contains_urls'PHRASETYPEID_ERROR) . '";');
            
$errored true;
        }

        if (!
$errored && preg_match('/w(\s*)w(\s*)w/i'$pagetext)) {
            eval(
'$errors[] = "' fetch_phrase('x_contains_urls'PHRASETYPEID_ERROR) . '";');
            
$errored true;
        }

        if (!
$errored && preg_match('/(\w*)(\s*)(\.|dot)(\s*)(c(\s*)o(\s*)m|c(\s*)o(\s*)(\.|dot)(\s*)u(\s*)k|n(\s*)e(\s*)t|o(\s*)r(\s*)g)/i'$pagetext)) {
            eval(
'$errors[] = "' fetch_phrase('x_contains_urls'PHRASETYPEID_ERROR) . '";');
            
$errored true;
        }
    }

    return 
$errors;

If you want this to apply to posts only you don't need to do the following edit which is for PM's:

In private.php find:

PHP Code:
        // process errors if there are any
        
if (!empty($errors)) 
Add BEFORE:

PHP Code:
$errors array_merge($errorsverify_message_urls($pm['message'])); 
Phrases to add:

In Front-End Error Messages add:
Varname: x_contains_urls
Text:
Code:
Your $typephrase contains one or more URLs, please remove them before submitting your message again.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #42  
Old 08-08-2004, 02:12 AM
Battle_Ring Battle_Ring is offline
 
Join Date: Apr 2004
Posts: 584
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can I Get The Txt File.....
Reply With Quote
  #43  
Old 08-10-2004, 08:17 PM
lifesourcerec's Avatar
lifesourcerec lifesourcerec is offline
 
Join Date: Jan 2002
Posts: 429
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I keep getting "Could not find phrase 'x_contains_urls'", but the phrase is actually there.
Reply With Quote
  #44  
Old 08-10-2004, 10:01 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by lifesourcerec
I keep getting "Could not find phrase 'x_contains_urls'", but the phrase is actually there.
Make the phrase global.
Reply With Quote
  #45  
Old 08-16-2004, 08:16 AM
Malke Malke is offline
 
Join Date: Jan 2004
Posts: 21
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Malke
I installed this in 3.0.1 and got an error in functions_newpost.php on line 811 when anyone tried to post anything. I re-did the whole thing and I still had the error... I did edit the nr of posts so it's not that.

Just thought I'd let you know...
Did anyone else get this???
Reply With Quote
  #46  
Old 08-16-2004, 06:38 PM
Durtay Durtay is offline
 
Join Date: Feb 2004
Posts: 33
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

here's a txt file everyone's askin for
Reply With Quote
  #47  
Old 08-27-2004, 09:07 AM
Theater's Avatar
Theater Theater is offline
 
Join Date: Aug 2004
Posts: 121
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I tested this out on 3.0.3, and it worked partly. I wasn't able to post a URL with under 10 posts, but was able to private message myself. I had my board shutoff for maintenance, and the TestDummy account was a moderator of a test forum. Maybe that had something to do with it, I'll test it out later.

Just to confirm, this is all that's needed to require registered members to have 10 posts before they can send PM's:

Code:
----------------------------------------
Find:
----------------------------------------

// process errors if there are any 
        if (!empty($errors)) 


----------------------------------------
Add BEFORE:
----------------------------------------

$errors = array_merge($errors, verify_message_urls($pm['message']));
Reply With Quote
  #48  
Old 09-13-2004, 01:34 AM
WebMasterAJ WebMasterAJ is offline
 
Join Date: Oct 2001
Posts: 104
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well, on member on my forums decided to try and find a loop hole in this system... and needless to say, he did...

He started posting URLS in the thread titles as just www.linktosite.com. Is there any way to prevent this as well? Or should I just give up on it?

Thanks for everything!
Reply With Quote
  #49  
Old 09-16-2004, 12:29 AM
msimonds msimonds is offline
 
Join Date: Aug 2003
Location: Dallas, Texas
Posts: 157
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by WebMasterAJ
Well, on member on my forums decided to try and find a loop hole in this system... and needless to say, he did...

He started posting URLS in the thread titles as just www.linktosite.com. Is there any way to prevent this as well? Or should I just give up on it?

Thanks for everything!
Yes is there a way to make it so it does not do this
Reply With Quote
  #50  
Old 09-16-2004, 01:00 AM
msimonds msimonds is offline
 
Join Date: Aug 2003
Location: Dallas, Texas
Posts: 157
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

never mind I see that it is already blocking that, my bad

Nice mod, really nice mod
Reply With Quote
  #51  
Old 09-16-2004, 04:10 AM
mefromspace mefromspace is offline
 
Join Date: Aug 2004
Posts: 33
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I think this hack is great to prevent spammers.

Now my question is if its possible to do this for attachments too.

I hate it when people register and in ther first post they post pictures
from other sites together with ther site link.

It would be awsome if it was possible!!!
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:15 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05219 seconds
  • Memory Usage 2,330KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (6)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete