The latest antibot-links (5.50) is available here!

Anti-Bot Links 2.00

Hello friends.

I've got too many e-mails and PMs to answer them one by one so I decided to make v 2.0 that is easier to integrate and then make this file to explain what to do. It took me a day, but hope it will stop the bots for long!

I'll try to keep it short.


Download & unpack:
antibotlinks.zip


Files to add:
/libs/antibotlinks.php


Files to edit:
/index.php
/templates/*theme-name*/index.php



Ok, let's start.

First make a backup of your faucet (everything could go wrong, better safe than sorry).

Then

Copy:
antibotlinks.php

To:
/libs/antibotlinks.php


Now you will need to edit 2 files. I suggest using Notepad++ https://notepad-plus-plus.org/ to edit files but any good editor will do the job.
This is based on FB R60 but should work with newer/older versions.

Open:
/index.php

Find:
        $data['captcha_info'] = $captcha;

add after:
        # AntiBotLinks
        
require_once('libs/antibotlinks.php');
        
$antibotlinks = new antibotlinks(true);// true if GD is on on the server, false is less secure
        
if (array_key_exists('address'$_POST)) {
          if (!
$antibotlinks->check()) {
            
$antibotlinks->generate(5true);// number of links once they fail to solve min 3 - max 5, the second param MUST BE true
          
}
        } else {
          
$antibotlinks->generate(3);// initial number of links min 3 - max 5
        
}



Find:
           $data['captcha_valid'] && 

add after:

           
# AntiBotLinks
           
$antibotlinks->is_valid() &&
           


Open:
/templates/*theme-name*/index.php

Find:
</head>

Add before:
<?php
# AntiBotLinks START
?>
<script style="text/javascript">
$(function() {
  var clicks = 0;
  $('.antibotlinks').click(function() {
    clicks++;
    $('#antibotlinks').val($('#antibotlinks').val()+' '+$(this).attr('rel'));
    if(clicks == <?php echo $antibotlinks->get_link_count(); ?>) {
      var rand = Math.floor((Math.random() * clicks) + 1);
      var button = '<input type="submit" class="btn btn-primary btn-lg" value="Get Reward!">';
      var z=0;
      $('.antibotlinks').each(function(){
        z++;
        if (z==rand) {
          $(this).replaceWith(button);
        }
      });
      
    }
    $(this).hide();
    return false;
  });
});
</script>
<?php
# AntiBotLinks END
?>



Find:
                            <?php if(!$data["captcha_valid"]): ?>
                            <p class="alert alert-danger">Invalid captcha code!</p>
                            <?php endif; ?>



Add after (the input field must be between <form> and </form>):

<?php
# AntiBotLinks START
?>
                            <input type="hidden" name="antibotlinks" id="antibotlinks" value="" />
                            <?php if(!$antibotlinks->is_valid()): ?>
                            <p class="alert alert-danger">Invalid AntiBot verification!</p>
                            <?php endif; ?>
<?php
# AntiBotLinks END
?>


After the next:

</div>


Add:

<?php
# AntiBotLinks START
?>
                        <?php echo $antibotlinks->show_info(); ?>
<?php
# AntiBotLinks END
?>



Somewhere between <form> and </form> add (you need to do it 5 times, this is where the links will appear):

<?php
# AntiBotLinks START
?>
                        <?php echo $antibotlinks->show_link(); ?>
<?php
# AntiBotLinks END
?>


And finally remove the default CLAIM button :)



What's the idea behind?

The idea is to make each faucet unique. It is easy for a faucet owner to add new unique logical puzzles by editing antibotlinks.php (line 32-38). Just watch the lines above and try to make yours.


Live demo is available at http://bit.makejar.com/labs/anti-bot-links-200/