vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=33)
-   -   Disallow guests to view threads, must register first (https://vborg.vbsupport.ru/showthread.php?t=59859)

Onkel_Tom 06-20-2004 09:29 PM

There is still a problem if your vB is closed for guest and a user registers at the forum without click on the activation eMail, he can still read threads in the forum!

I found the solution for one usergroupID in the thread.
PHP Code:

if ($bbuserinfo['userid'] == or $bbuserinfo['usergroupid'] == 1

But for more usergroupID's it should look like:
PHP Code:

//if ($bbuserinfo['userid'] == 0 or $bbuserinfo['usergroupid'] == 1 or $bbuserinfo['usergroupid'] == 3 or $bbuserinfo['usergroupid'] == 4 or $bbuserinfo['usergroupid'] == 8 or $bbuserinfo['usergroupid'] == 11 AND !preg_match("#(google|slurp@inktomi|yahoo! slurp|lycos|ask jeeves|scooter|fast-webcrawler|turntinbot|msnbot|webcrawler|Infoseek|W3C_Val|googlebot)#si", $_SERVER['HTTP_USER_AGENT'])) 

Is there a solution to reduce the line with the usergroupid checks like or $bbuserinfo['usergroupid'] == in array[1, 3, 4, 8, 11] or something like that ?

IIstix 06-23-2004 01:36 AM

Is there a link explaining how to how to do this via a template?

Quote:

Originally Posted by Zachery
could also be done via a template mod :)
in a slightly differnt way of course ;D


maggie 06-26-2004 05:05 PM

I've gotten all turned around in this thread, I'm wondering if someone can help me please?
I have one forum that I don't want ANYONE to see in any way (through searches, archives, nothing) unless they have special permission (admin or access masking).
One forum that I want registered members to have access to, and guests at least be able to see that there ARE threads in there, just not be able to view the actual threads.
And one forum that I want guests to be able to participate in.
So basically, I want the "can't view at all" AND the "open" options... pain in the rear, aren't I? :D

gorman 06-30-2004 09:51 AM

Quote:

Originally Posted by IIstix
Is there a link explaining how to how to do this via a template?

Yes, I would be interested too...

Raitsa 07-01-2004 06:40 AM

Quote:

Originally Posted by Raitsa
I am feeling really stupid cos i cant get this hack to work: my postcount remains at 0 at all forums.

Stupid i was. Again.

Of course i did not change the permissions for unregistered guests, i assumed they should see the posts automatically after applying this hack.
But since i had not given them rights to view the forum topics, i could not get this to work at all.
But now that i changed the forum rights settings they are allowed to see the topics, i get the right number of posts for them as well.
(But they still cant read the threads, only view them, as it was meant too).

WEForums 07-16-2004 02:58 AM

Nice hack and all, but I just did it this way:

PHP Code:

<if condition="$bbuserinfo['userid']">
             
                            <
div>$post[message]</div>
                            <!-- / 
message -->
<else />
Your messageblah blah.</if> 


Natch 07-29-2004 04:43 AM

Is there any way to tie in the $vboptions[spiderstrings] array into the spider-list - ???

N00BIE 07-29-2004 05:26 AM

nice hack thanx =]

gr3g0 08-03-2004 08:34 PM

I'm using this to keep out some determined fools on my site. For the benefit of anyone else who may be doing this, make sure you follow similar instructions as described in post #1 of this thread and apply the change to the following files in the same place:
  • printthread.php
  • search.php (it's possible to "find all posts by this user" and read posts that way)
  • showpost.php (in case a direct url is "guessed" or otherwise)
ALSO - we have all new registrants moderated, however these hacks only considered unregistered users. This meant people could "apply" to join the board and thereby skip all of these measures (by virtue of moving from the "guest" usergroup to the COPPA or "wait for email confirmation" usergroup).

As a result, all pages that I changed had a longer line added to them to cover all the appropriate usergroups:

Code:

if (($bbuserinfo['userid'] == 0 or $bbuserinfo['usergroupid'] == 1 or $bbuserinfo['usergroupid'] == 3 or $bbuserinfo['usergroupid'] == 4) AND !preg_match("#(google|slurp@inktomi|yahoo! slurp)#si", $_SERVER['HTTP_USER_AGENT']))
{
    print_no_permission();
}

Don't forget to also amend the usergroup permissions for these usergroups so that they are the same as guests.

Of course, this all depends on your motives for keeping people out. Threads in our board are private so this was appropriate for us

boiboi 08-14-2004 12:04 PM

nice hack can google still index archives?

TheOmegaCircle 08-16-2004 09:55 AM

Anyone knows how get this work with 3.0.1?
(Showthread.php does not containt this code:
Code:

globalize($_REQUEST, array('perpage' => INT, 'pagenumber', 'highlight' => STR, 'goto'));
Pasting the new code below a similar place does not work...

emtee 09-01-2004 08:51 AM

Quote:

Originally Posted by IndyWebDesign
Well the above worked great to tell a guest they needed to login but when I'm logged in even as an admin I get the error:

you do not have permission to access this page. This could be due to one of several reasons:

Your user account may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Same here! After awhile banging my head to the walls trying to figure out why it also blocks other usergroups - not just the specified group which is guest/not logged in - to view threads. Too bad I had to uninstall this. I check the codes very carefully but it still refused to work! I'm using 3.0.3 and this hack doesn't let me (admin) and other usergroups view threads that are supposed to block only guests/not logged-in from viewing.

If anyone can find a fix, please post it!!! Thanks in advance. This is a very useful hack. I don't know why this feature is not default in vB3. Plain s2pid!!!!!!!!!

boiboi 09-01-2004 05:23 PM

Google for some reason has stop indexing my site after I blocked the archives from being viewed by non members. The purpose of the archive is has nothing to do with archiving but instead it's work around to make vb3 search-engine-friendly. So the solution would be to uninstall the hack from archive and remove the archive link in the footer?

Onkel_Tom 09-01-2004 07:14 PM

Quote:

Originally Posted by boiboi
Google for some reason has stop indexing my site after I blocked the archives from being viewed by non members. The purpose of the archive is has nothing to do with archiving but instead it's work around to make vb3 search-engine-friendly. So the solution would be to uninstall the hack from archive and remove the archive link in the footer?

You can also replace your line in index.php of /archive directory to let Google and other important search engines in your archive but not unregistered persons ;)

Code:

$grouparray = array ( 3,4);
if (in_array($bbuserinfo['usergroupid'],$grouparray) OR $bbuserinfo['userid'] == 0 AND !preg_match("#(google|slurp@inktomi|yahoo! slurp|lycos|ask jeeves|scooter|fast-webcrawler|turntinbot|msnbot|webcrawler|Infoseek|W3C_Val|googlebot)#si", $_SERVER['HTTP_USER_AGENT']))
{
          echo "<center><font face=verdana, arial, helvetica size=3>You are not allowed to show our archive.<br><br>Your have to <a href=\"$vboptions[bburl]/register.php?\">register</a> first at $vboptions[bbtitle] to show threads in our forums.<br><br>If you are registered at our forum it could be that you are not logged in our your account must first be checked and enabled from an Administrator.</font></center>\n<hr />\n";
       
    print_no_permission();
}

just replace the usergroups in $grouparray you want to disallow to have access to your archive.

For my Board Google is idexing all threads in archive and it works great ;)

DarknessDivine 09-02-2004 04:08 PM

Quote:

Originally Posted by Onkel_Tom
You can also replace your line in index.php of /archive directory to let Google and other important search engines in your archive but not unregistered persons ;)

Code:

$grouparray = array ( 3,4,8,11);
if (in_array($bbuserinfo['usergroupid'],$grouparray) OR $bbuserinfo['userid'] == 0 AND !preg_match("#(google|slurp@inktomi|yahoo! slurp|lycos|ask jeeves|scooter|fast-webcrawler|turntinbot|msnbot|webcrawler|Infoseek|W3C_Val|googlebot)#si", $_SERVER['HTTP_USER_AGENT']))
{
          echo "<center><font face=verdana, arial, helvetica size=3>You are not allowed to show our archive.<br><br>Your have to <a href=\"$vboptions[bburl]/register.php?\">register</a> first at $vboptions[bbtitle] to show threads in our forums.<br><br>If you are registered at our forum it could be that you are not logged in our your account must first be checked and enabled from an Administrator.</font></center>\n<hr />\n";
       
    print_no_permission();
}

just replace the usergroups in $grouparray you want to disallow to have access to your archive.

For my Board Google is idexing all threads in archive and it works great ;)

Will this also work with 3.0.1???

Onkel_Tom 09-02-2004 04:21 PM

Quote:

Originally Posted by DarknessDivine
Will this also work with 3.0.1???

Why not ?
$bbuserinfo, $usergroupid and print_no_permission() is the same for vB3 in all Versions right now.

emtee 09-02-2004 04:35 PM

Hi Onkel Tom,

Does it work with 3.0.3 ? I have tried Gary W's code but unfortunately it works for all usergroups (don't know why???) not just guest/not logged in, so if you could post the instruction from scratch for all the files, it would really help me. I think I'm in the same boat with IndyWebDesign.

Quote:

Originally Posted by IndyWebDesign
Well the above worked great to tell a guest they needed to login but when I'm logged in even as an admin I get the error:

You do not have permission to access this page. This could be due to one of several reasons:

Your user account may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Thanks.

Onkel_Tom 09-02-2004 09:06 PM

Quote:

Originally Posted by emtee
Hi Onkel Tom,
Does it work with 3.0.3 ? I have tried Gary W's code but unfortunately it works for all usergroups (don't know why???) not just guest/not logged in, so if you could post the instruction from scratch for all the files, it would really help me. I think I'm in the same boat with IndyWebDesign.
Thanks.

As I wrote one post before my code is working for all vB 3 Versions right now. I using vB3.0.3 on my Boards too and it works.

Your find the instruction of the Hack in the first post. I only changed some parts for better fitting on my own wishes, so I posted my code which is working for the most recent search engines.

This code can be placed in /archive/index.php to allow search engines which are written in the code to index this pages.

If you want to use my code instead of Gary W's code for the archive just replace in /archive/index.php:
Code:

if ($bbuserinfo['userid'] == 0 AND !preg_match("#(google|slurp@inktomi|yahoo! slurp)#si", $_SERVER['HTTP_USER_AGENT']))
{
    print_no_permission();
}

With my code:
Code:

$grouparray = array ( 3,4);
if (in_array($bbuserinfo['usergroupid'],$grouparray) OR $bbuserinfo['userid'] == 0 AND !preg_match("#(google|slurp@inktomi|yahoo! slurp|lycos|ask jeeves|scooter|fast-webcrawler|turntinbot|msnbot|webcrawler|Infoseek|W3C_Val|googlebot)#si", $_SERVER['HTTP_USER_AGENT']))
{
          echo "<center><font face=verdana, arial, helvetica size=3>You are not allowed to show our archive.<br><br>Your have to <a href=\"$vboptions[bburl]/register.php?\">register</a> first at $vboptions[bbtitle] to show threads in our forums.<br><br>If you are registered at our forum it could be that you are not logged in our your account must first be checked and enabled from an Administrator.</font></center>\n<hr />\n";
       
    print_no_permission();
}

You can add or remove search engines by editing this line:
Code:

!preg_match("#(google|slurp@inktomi|yahoo! slurp|lycos|ask jeeves|scooter|fast-webcrawler|turntinbot|msnbot|webcrawler|Infoseek|W3C_Val|googlebot)#si",
for each new spider add his user agent identification to the line with a "|" between like "spider1|spider2|spider3"

The echo syntax is only for index.php of archive because if you use this code and a unauthorised person will access the archive only a white page is shown. Therefore I added the echo information to the screen to show "what is wrong".

I used the "$grouparray = array ( 3,4); " function to define my usergroups which are not allowed to access the archive. You can put here any usergroup ID you want not to access your archive separated by ",". Usergroup 8 and 11 are defined groups from my board, just remove that both group ID's.

I hope I could help and the instructions are easy to understand ;)

emtee 09-02-2004 10:01 PM

Very cool, I will try this. Thanks a lot man!!!

DarknessDivine 09-03-2004 02:23 PM

Tried it, looks great! Many thanks to you....

DoKoK 09-16-2004 09:07 PM

great job,

Install

DoKoK 09-17-2004 01:43 AM

I read a few pages of this topic and I don't see my question answered.

It might be in the other pages but anyway here it is:

Is there a way to let my guests see the News forum topics and not be able to open the others?

PAINTBALLM 09-17-2004 03:31 AM

installed

nonet 11-12-2004 02:32 PM

I've been playing around with this hack and MAY have come up with a forumula to allow spiders to still view threads while denying permission to guest. I am not a coder by trade so please check this code out and see if it works for you. I've been running it about 3-4 hours and it seems spider friendly on my site.

There are three files to change and one file to upload.

archive/index.php
includes/functions.php
showthread.php

Upload this file and place in your forum root directory and the archive directory.
spiders.txt



Open archive/index.php and find:
Code:

$title .= ' - ' . $foruminfo['title'];
}
else
{
$do = 'index';
}

Below, add:
Code:

if (restrict_guest($bbuserinfo['userid']))
{
print_no_permission();
}

Open showthread.php and find:
Code:

globalize($_REQUEST, array('perpage' => INT, 'pagenumber', 'highlight'
=> STR, 'goto'));

Below, add:
Code:

if (restrict_guest($bbuserinfo['userid']))
{
print_no_permission();
}

In the same file find the lines:
Code:

if ($bbuserinfo['userid'] == 0 or $bbuserinfo['usergroupid'] == 3)
{
print_no_permission();
}

And replace them with:
Code:

if ($bbuserinfo['userid'] == 0 or $bbuserinfo['usergroupid'] == 3 and
!$spider_flag)

{

print_no_permission();

}

In the same file find the lines:
Code:

if (!($forumperms & CANVIEWOTHERS) AND ($thread['postuserid'] !=
$bbuserinfo['userid'] OR $bbuserinfo['userid'] == 0)) {
print_no_permission();
}

And replace them with:
Code:

if (!($forumperms & CANVIEWOTHERS) AND ($thread['postuserid'] !=
$bbuserinfo['userid'] OR ($bbuserinfo['userid'] == 0 AND
!$spider_flag))) {
print_no_permission();
}

Open functions.php and at the end before
Code:

?>
Add:
Code:

function restrict_guest($user_id)
{

global $_SERVER, $spider_flag;

$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);

$spider_flag = false;

if ($user_agent != "")

{

$spiders = file('./spiders.txt');

for ($i=0, $n=sizeof($spiders); $i<$n; $i++)

{

if (!empty($spiders[$i]))

{

if (is_integer(strpos($user_agent,

trim($spiders[$i]))))

                                {

                                      $spider_flag = true;

                                      break;

                              }

                      }

              }

      }



      if ($user_id == 0 AND !$spider_flag)

      {

                return true;

        }

      return false;

}

DONE!

dorkus 11-30-2004 12:38 PM

Thanks Gary.

cschuck3 12-13-2004 07:40 AM

Yea I needed this, I was waiting for this!!

Neutral Singh 12-14-2004 09:27 AM

Quote:

Originally Posted by cschuck3
Yea I needed this, I was waiting for this!!

Hi

I have installed this hack with gr8 results... my only problem is that i have a links partner section on the main forum itself... now what is happening is that when these link partners try to periodically locate their links in the forum they get the access denied message and they remove my links from their website. :(

Just as we did with archive section... Can we also exclude a selected forum from being affected by this hack. i mean that single particular forum should available as usual to anyone and everyone without any restriction.

Please guide me otherwise i am left with no option but to compromise on this hack.

Regards

Sleepyk 12-19-2004 01:15 AM

before i install this, does it work with vb 3.0.3?

bamaster 12-19-2004 05:21 AM

Quote:

Originally Posted by Sleepyk
before i install this, does it work with vb 3.0.3?


Works on mine!

See here, for a protected forum:
http://www.allbowling.com/forum/forumdisplay.php?f=11

Oreamnos 12-19-2004 05:59 AM

Quote:

Originally Posted by bamaster
Works on mine!

See here, for a protected forum:
http://www.allbowling.com/forum/forumdisplay.php?f=11

BTW, who has access to this forum on your site? all registered users? special usergroups? admins?

I am just about to install this and just wanted to check what you were doing.

jzewatsky 12-21-2004 07:16 PM

Where do add the code for showthread.php in vb 3.0.3? I've searched the php several times for the "globalize....." line and have not found it. Thanks in advance for the help.

bamaster 12-23-2004 04:09 PM

Quote:

Originally Posted by Oreamnos
BTW, who has access to this forum on your site? all registered users? special usergroups? admins?

I am just about to install this and just wanted to check what you were doing.


Yes, all registered users. Actually, Registered and Imported users... since I imported my users from phpBB.

bamaster 12-23-2004 04:12 PM

Quote:

Originally Posted by jzewatsky
Where do add the code for showthread.php in vb 3.0.3? I've searched the php several times for the "globalize....." line and have not found it. Thanks in advance for the help.


Read post #111 in this thread to see the altered code. He said it didn't work for him, but it did for me.

rushabh 12-31-2004 05:43 AM

Hi,

I have v3.0.3 too and really cant understand the part about the showthread. Am a beginner in .php so please understand.

What exactly do I find in the showthread and what do I add/replace?

Thanks much

R

jzewatsky 01-05-2005 08:59 PM

bamaster,

Thanks for the suggestion. I tried it (post 111) and am still not working. Would you mind posting exactly how you got it to work? Are we working with different VB ver's?

MauriceReed 01-07-2005 11:20 AM

Hi we have got this hack installed on our forum www.gob++++es.co.uk and it seems to be working fine.

Question, does anybody know what impact, if any, this has on google spiders etc? I have submitted our site to google and some other search engines but vey little evidence of google spiders appearing. On another forum to which I belonged they were regularly visiting.


cheers

boiboi 01-28-2005 03:18 AM

no impact on yahoo whatsover.

glock22 02-14-2005 01:30 AM

Well, I installed the initial code on my 3.0.6 board that I just installed and it worked great.. I thought it was bulletproof... Well , there seems to be a problem. When users are logged in they do not have access to their subscription panel and they cannot use the drop down menu for subscribing to thread or forum. When they click they get a message that they do not have suffiecient privilages etc.... They can read and reply to threads... They cannot use the subsciption.php correctly. I even tried the fix that got posted for the subscription.php.. Still nothing

Nikos :(

This hack is integral to the success of my forum. ANy help is appreciated.

glock22 02-14-2005 02:08 AM

It seems like admin and supermoderators can access the

http://www.vbulletin.com/forum/subscription.php? page

but normal users cannot.. I can't figure it out

Nikos

boiboi 02-17-2005 07:50 AM

Strange.. works ok on mine. you shouldn't have edited subscription.php


All times are GMT. The time now is 01:47 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01476 seconds
  • Memory Usage 1,871KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (17)bbcode_code_printable
  • (3)bbcode_php_printable
  • (14)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete