[geeklog-devel] Re: Article throttle.

Justin Carlson justin.carlson at gmail.com
Thu Dec 16 17:46:51 EST 2004


I should probably clean this a little for read-ability, and so it does
not query if the throttle is not on:

// Throttle
if($_CONF['throttle']>0){
    $rs = DB_query( "SELECT DISTINCT uid,remote_ip FROM
{$_TABLES['sessions']} WHERE uid = 1" );
    if(DB_numRows($rs)>=$_CONF['throttle'])}{
        if(!eregi($_CONF['site_url'],$_SERVER['HTTP_REFERER'])){
        $mode='print';
        }
    }
}



On Thu, 16 Dec 2004 16:41:16 -0600, Justin Carlson
<justin.carlson at gmail.com> wrote:
> Some sites get nailed, by links from slashdot, or other similar sites.
> An example would be GrokLaw.
> 
> I've got what I think is an incredibly simple solution.
> I've taken the current version of Geeklog, and added these lines: to
> the conf file:
> 
> // Article
> // This will allow you to setup a throttle based on guests and direct links to
> // stories. For example, if you set the throttle to 300, and there are 300 guest
> // users online, any story or article linked from another site will only display
> // the text of the item, no layout or general site graphics. This very
> simplistic
> // method of bandwidth protection could save your site in the event of a
> // sudden surge of activity.
> $_CONF['throttle'] = '0';
> // A value of '0' will shut the throttle off. (default)
> 
> Then in public_html/article.php, I've added the following code at or
> near line 73 ( after the if (isset ($HTTP_POST_VARS['mode'])) { }
> block.
> 
> // Throttle
> $rs = DB_query( "SELECT DISTINCT uid,remote_ip FROM
> {$_TABLES['sessions']} WHERE uid = 1" );
> if($_CONF['throttle']>0 && DB_numRows($rs)>=$_CONF['throttle'] &&
> !eregi($_CONF['site_url'],$_SERVER['HTTP_REFERER'])) $mode='print';
> 
> What this does is extremely simple. The owner of the website sets a
> throttle, which is a number of guest users. Once this number is
> reached, any article accessed from an external link or directly
> accessed will display in print mode. This should greatly reduce the
> number of database queries, as well as the number of GET requests to
> the server. ( No site graphics, only story graphics ).
> 
> For GL2, I'd like to build more into the site, to allow any page to be
> throttled, but for the current release I feel is pretty decent.
> 
> I have not contributed before. I am looking for thoughts and, I guess,
> someone to place this into the test site for including in the next
> version.
>



More information about the geeklog-devel mailing list