AdsCaptcha instead of ReCaptcha

Shawn Hagan

Member
well the other recaptcha option would be sufficient, especially if we are going through with the adfly part for clickthroughs plugin just needs to keep it from bot voting so easily with a one button click like it is stock. the security for the gateway is a must for a core update imo.
 

Shawn Hagan

Member
although judging by the email. this is a implementation issues on my part, not theres.. the account email says
"The evaluation period will take up to 72 hours, after which you'll receive notification via email."
which sounds to me as if it will like it should, just not have advertisements that will earn you revenue.
so maybe we need to look at this to see whats not proper in this instructions for our current build, or even just look at mine to see what i screwed up.
 

Mark

Administrator
Staff member
Security for the gateway is not something I want in the core, making all incoming traffic fill out a captcha is a surefire way to cripple your traffic and revenue.

Yes I know some old and popular topsites in the gaming world do this, but I believe they do this because their anti cheat system is weak, sometimes following the leader can do more harm than good. I would recommend to those of you taking this approach to reconsider your position and see what happens if you allow a single click in gateway to count as a vote, if people start cheating on your lists then we can work together to improve our anti cheat system, but nobody likes captchas, especially for something as insignificant as a vote on a topsite. Anyway, just wanted to voice that opinion, this has been a long time gripe for me over the years. Its hard enough to build a successful list these days, nevermind making all your in clicks answer captchas :)
 

cajkan

Active Member
True Mark

if user wanna vote

would be very easy just to press the GREEN Button :D

so he safe more time and faster stuff...
 

stickmenz

New Member
Having problems implementing AdsCaptcha (also tried ReCaptcha as well).

It appears to be implemented correctly, but keeps giving "captcha was incorrect" after completing the captcha. I am not sure what else to try. The captcha appears on my vote links (example: http://www.theminelist.com/index.php?a=in&u=edy) the api ID, private, and public keys are entered.

I have implemented Morus's code I believe to be correct, but somehow my captcha is always stating that it is incorrect. Please help.

-Stickmenz
 

stickmenz

New Member
Here is my code for in.php, obviously I have remoeved my ID, private, and public keys

Code:
<?php
//===========================================================================\\
// VISIOLIST is a proud derivative work of Aardvark Topsites                \\
// Copyright (c) 2000-2009 Jeremy Scheff.  All rights reserved.              \\
//---------------------------------------------------------------------------\\
// http://www.aardvarktopsitesphp.com/                http://www.avatic.com/ \\
//---------------------------------------------------------------------------\\
// This program is free software; you can redistribute it and/or modify it  \\
// under the terms of the GNU General Public License as published by the    \\
// Free Software Foundation; either version 2 of the License, or (at your    \\
// option) any later version.                                                \\
//                                                                          \\
// This program is distributed in the hope that it will be useful, but      \\
// WITHOUT ANY WARRANTY; without even the implied warranty of                \\
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General \\
// Public License for more details.                                          \\
//===========================================================================\\
 
if (!defined('VISIOLIST')) {
  die("This file cannot be accessed directly.");
}
 
class in extends in_out {
  function in() {
    global $CONF, $DB, $FORM, $TMPL;
 
    if (isset($_SERVER['HTTP_REFERER'])) {
      $referer = $DB->escape($_SERVER['HTTP_REFERER'], 1);
    }
 
    $go_to_rankings = 0;
    if (isset($FORM['a']) && $FORM['a'] == 'in') {
      $go_to_rankings = 1;
      $username = $DB->escape($FORM['u']);
    }
    else {
      // Get user by referer?
      $good_referer = 0;
      if (isset($referer) && !isset($FORM['a']) && mb_strpos($referer, $CONF['list_url']) === FALSE) {
        // Make sure it's not a search engine
        if (mb_strpos($referer, 'http://www.google.com/search') === FALSE && mb_strpos($referer, 'http://search.yahoo.com') === FALSE && mb_strpos($referer, 'http://search.msn.com') === FALSE) {
          $good_referer = 1;
        }
      }
 
      if ($good_referer) {
        $username = $this->get_username($referer);
      }
      else {
        $username = '';
      }
    }
 
    if ($username) {
      list($username_sql, $username_active) = $DB->fetch("SELECT username, active FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}'", __FILE__, __LINE__);
      if ($username_sql == $username) {
        if ($CONF['gateway'] && !isset($FORM['sid'])) {
          $this->gateway($username);
        }
        else {
          if ($CONF['gateway']) {
            $valid = $this->check($username);
          }
          else {
            $valid = 1;
          }
// Adscaptcha Mod
  require_once($CONF['path'].'/sources/adscaptchalib.php');
$captchaId  = '';  // Set your captcha id here
$privateKey = '';  // Set your private key here
$challengeValue = $_POST['adscaptcha_challenge_field'];
$responseValue  = $_POST['adscaptcha_response_field'];
$remoteAddress  = $_SERVER["REMOTE_ADDR"];
 
if ("true" == ValidateCaptcha($captchaId, $privateKey, $challengeValue, $responseValue, $remoteAddress))
{
    // Corrent answer, continue with your submission process
} else {
    // Wrong answer, you may display a new AdsCaptcha and add an error message
  $TMPL['captcha_error'] = '<div class="error">Captcha was incorrect</div>';
          $this->gateway($username);
 
}
 
//
          if ($valid) {
            // Site made inactive due inactivity? Make it active again
            if ($username_active == 2) {
                $DB->query("UPDATE {$CONF['sql_prefix']}_sites SET active = 1 WHERE username = '{$username}'", __FILE__, __LINE__);
            }
            eval (PluginManager::getPluginManager ()->pluginHooks ('in_valid'));
            $this->record($username, 'in');
           
 
          }
        }
      }
    }
 
    if ($go_to_rankings) {
      header("Location: {$CONF['list_url']}/");
      exit;
    }
  }
 
 
  function check($username) {
    global $CONF, $FORM;
 
    require_once("{$CONF['path']}/sources/misc/session.php");
    $session = new session;
    list($type, $data) = $session->get($FORM['sid']);
    $session->delete($FORM['sid']);
 
    if ($type == 'gateway' && $data == $username) {
      return 1;
    }
    else {
      return 0;
    }
  }
 
  function gateway($username) {
    global $DB, $LNG, $CONF, $FORM, $TMPL;
 
    require_once("{$CONF['path']}/sources/misc/session.php");
    $session = new session;
    $TMPL['sid'] = $session->create('gateway', $username);
 
    $TMPL['username'] = $username;
 
// Adscaptcha Mod
  require_once($CONF['path'].'/sources/adscaptchalib.php');
  $captchaId  = '';  // Set your captcha id here
  $publicKey = '';
$TMPL['captcha_code'] = GetCaptcha($captchaId, $publicKey);
//
$result = $DB->query("SELECT title FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}' AND active='1'", __FILE__, __LINE__);
while (list($title) = $DB->fetch_array($result)) {
$TMPL['gateway_title'] = $title;
}
//
eval (PluginManager::getPluginManager ()->pluginHooks ('in_gateway'));
 
    echo $this->do_skin('gateway');
    exit;
  }
 
  function get_username($url) {
    global $CONF, $DB;
 
    $url = $this->short_url($url);
    $count = 0;
 
    $username = '';
    while (!$username) {
      list($username) = $DB->fetch("SELECT username FROM {$CONF['sql_prefix']}_sites WHERE short_url = '{$url}'", __FILE__, __LINE__);
 
      if (!$username) {
        $url = $this->short_url("{$url}.");
      }
 
      $count++;
      if ($count >= 10) {
        $username = 0;
        break;
      }
    }
 
    return $username;
  }
 
  function short_url($url) {
    // Lowercase
    $url = mb_strtolower($url);
 
    // Get rid of www.
    $url = preg_replace('/\/\/www./', '//', $url);
 
    // Get rid of trailing slash
    $url = preg_replace('/\/$/', '', $url);
 
    // Get rid of page after the last slash
    preg_match('/^(http:\/\/.+)\/(.+)/', $url, $matches);
    if (!isset($matches[0])) {
      // Just a domain with a slash at the end
      $url = preg_replace('/^(http:\/\/.+)\//', '\\1', $url);
    }
    else {
      // All other URLs
      // Check to see if after the trailing slash is a file or a directory
      if (mb_strpos($matches[2], '.')) { $url = $matches[1]; }
    }
 
    return $url;
  }
}
?>
 

Basti

Administrator
Staff member
is your adscaptcha aktivated yet? it appears they need quite some time to activate pending requests
 

stickmenz

New Member
is your adscaptcha aktivated yet? it appears they need quite some time to activate pending requests
Yes, the account is active. Please note that adscaptcha and recaptcha both do the same thing. I had a friend try and debug this for about 5 hours last night; we put a debug statement on and it essentially said that the challenge and response value's were not being posted.
 

Basti

Administrator
Staff member
Please post you 2 edited files here. I have the feeling the html change in gateway.html is wrong ( for recaptcha ), its required to setup a form and change vote link to an input for it to work ( like morus did )
 

stickmenz

New Member
ok the code for my "in.php" is above, here is for gateway:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>{$lng->gateway_header}</title>
<meta http-equiv="Content-Type" content="text/html;charset={$lng->charset}" />
    <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
 
 
jQuery(document).ready(function(){
    jQuery(".visio_button").hover(function(){jQuery(this).stop().animate({opacity:0.8},250)},
    function(){jQuery(this).stop().animate({opacity:1.0},250)})
    });
 
</script>
<link rel="stylesheet" type="text/css" media="screen" href="{$skins_url}/{$skin_name}/screen.css" />
<style type="text/css">
 
 
 
.gatemessage {
display: block;
border-bottom: 1px dashed #ccc;
background: #f8f8f8;
padding: 5px;
}
 
#gatewrap {
border: 1px solid #ccc;
padding: 2px;
margin: 50px auto;
width: 700px;
border-radius: 15px;
background: #fff;
box-shadow: 0px 0px 10px #ccc;
}
#gatewrap2 {
border: 1px solid #f2f2f2;
padding: 1px; 
width: 696px;
border-radius: 15px;
background: #f7f7f7;
}
 
h1 {
display: block;
text-align: center;
margin: 0;
color: #666;
text-shadow: 1px 1px 1px #fff;
}
 
 
.visio_button, .visio_button:hover {
    text-decoration: none;
    border: 0;
    display:inline-block;
    color: #fff !important;
    }
.visio_button span {
    display:block;
    }
 
.small_button{
    margin:5px 10px 5px 0;
    padding:0 21px 0 0;
    font-size: .9em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -43px no-repeat scroll;
    color: #F4F4F2;
    }
.small_button span{
    margin:0;
    padding:16px 0 17px 21px;
    line-height: 10px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 0 no-repeat scroll;
    }
 
 
.medium_button{
    margin:5px 10px 5px 0;
    padding:0 23px 0 0;
    font-size: 1em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -136px no-repeat scroll;
    color: #F4F4F2;
    }
.medium_button span{
    margin:0;
    padding:19px 0 19px 23px;
    line-height: 12px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 -86px no-repeat scroll;
    }
 
 
.large_button{
    margin:5px 10px 5px 0;
    padding:0 34px 0 0;
    font-size: 1.1em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -261px no-repeat scroll;
    color: #F4F4F2;
    border:0;
    outline:none;
    cursor:pointer;
    }
.large_button span{
    margin:0;
    padding:28px 0 33px 33px;
    line-height: 16px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 -186px no-repeat scroll;
    border:0;
    outline:none;
    cursor:pointer;
    }
 
.red span, .red {
    background-image: url({$skins_url}/{$skin_name}/img/red-sprite.png) !important;
    }
.green span, .green {
    background-image: url({$skins_url}/{$skin_name}/img/green-sprite.png) !important;
    }
 
</style>
 
</head>
<body>
 
<div id="gatewrap"><div id="gatewrap2">
    <h1>VOTE GATEWAY</h1>
            <p class="gatemessage">Enter your name for 'Votifier Rewards' and complete the captcha to cast your vote</p><br />{$gateway_votifier}<br /><br />
            {$captcha_error}
<div style="margin-left:27%">{$captcha_code}</div>
 
 
        <div id="gateway-top">{$gateway_top}</div>
 
        <a href="{$list_url}/" class="visio_button large_button red" target=""><span>{$lng->gateway_no_vote}</span></a>
        <a href="{$list_url}/index.php?a=in&amp;u={$username}&amp;sid={$sid}" class="visio_button large_button green" target=""><span>{$lng->gateway_vote}</span></a>
 
        <div id="gateway-bottom">{$gateway_bottom}</div>
 
</div></div>
</body>
</html>
 

Basti

Administrator
Staff member
Yea there is the issue. You have no form at all, thus not sending any post data. Look into first post again.
There you see how you need to change the "Vote" Button and where to put form tags
 

Mark

Administrator
Staff member
Your pastebins are "private" and you have not provided any information... Please try to provide people with enough information to help you.
 

Morus

www.votezone.eu , www.privateserversranking.com
License Active
Please see below updated code for your gateway recaptcha. Please make sure you use child/gateway.html also please make sure that you have backup your original source/in.php

in.php
Code:
<?php
//===========================================================================\\
// VISIOLIST is a proud derivative work of Aardvark Topsites                \\
// Copyright (c) 2000-2009 Jeremy Scheff.  All rights reserved.              \\
//---------------------------------------------------------------------------\\
// http://www.aardvarktopsitesphp.com/                http://www.avatic.com/ \\
//---------------------------------------------------------------------------\\
// This program is free software; you can redistribute it and/or modify it  \\
// under the terms of the GNU General Public License as published by the    \\
// Free Software Foundation; either version 2 of the License, or (at your    \\
// option) any later version.                                                \\
//                                                                          \\
// This program is distributed in the hope that it will be useful, but      \\
// WITHOUT ANY WARRANTY; without even the implied warranty of                \\
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General \\
// Public License for more details.                                          \\
//===========================================================================\\

if (!defined('VISIOLIST')) {
  die("This file cannot be accessed directly.");
}

class in extends in_out {
    function in() {
    global $CONF, $DB, $LNG, $FORM, $TMPL;

    if (isset($_SERVER['HTTP_REFERER'])) {
      $referer = $DB->escape($_SERVER['HTTP_REFERER'], 1);
    }

    $go_to_rankings = 0;
    if (isset($FORM['a']) && $FORM['a'] == 'in' && isset($FORM['u'])) {
      $go_to_rankings = 1;
      $username = $DB->escape($FORM['u']);
    }
    else {
      // Get user by referer?
      $good_referer = 0;
      if (isset($referer) && !isset($FORM['a']) && mb_strpos($referer, $CONF['list_url']) === FALSE) {
        // Make sure it's not a search engine
        if (mb_strpos($referer, 'http://www.google.com/search') === FALSE && mb_strpos($referer, 'http://search.yahoo.com') === FALSE && mb_strpos($referer, 'http://search.msn.com') === FALSE) {
          $good_referer = 1;
        }
      }

      if ($good_referer) {
        $username = $this->get_username($referer);
      }
      else {
        $username = '';
      }

    }

    if ($username) {
      list($username_sql, $username_active) = $DB->fetch("SELECT username, active FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}'", __FILE__, __LINE__);
      if ($username_sql) {
        if ($CONF['gateway'] && !isset($FORM['sid'])) {
          $this->gateway($username);
        }
        else {
          $not_blacklisted = new join_edit;

          if ($CONF['gateway']) {
            $valid = $this->check($username);
          }
          else {
            $valid = 1;
          }

// Recaptcha Mod
require_once($CONF['path'].'/sources/recaptchalib.php');
$privatekey = "YOUR KEY HERE";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

if (!$resp->is_valid) {
  unset($go_to_rankings);
  unset($valid);
  $TMPL['captcha_error'] = '<div class="error">Captcha was incorrect</div>';
          $this->gateway($username);
}
// Recaptcha Mod

          // Plugin hook - Might be used for captcha validation
          eval (PluginManager::getPluginManager ()->pluginHooks ('in_before_valid'));


          if ($valid && $not_blacklisted->check_ban('vote')) {
            // Site made inactive due inactivity? Make it active again
            if ($username_active == 3) {
                $DB->query("UPDATE {$CONF['sql_prefix']}_sites SET active = 1 WHERE username = '{$username}'", __FILE__, __LINE__);
            }
            $this->record($username, 'in');
           
            eval (PluginManager::getPluginManager ()->pluginHooks ('in_valid'));
          }
        }
      }
    }

    if ($go_to_rankings) {
      $vote_url = "{$CONF['list_url']}/";

      // Plugin hook, redirect after voting. simply call $vote_url via a plugin
      eval (PluginManager::getPluginManager ()->pluginHooks ('in_redirect'));

      header("HTTP/1.1 301 Moved Permanently");
      header("Location: {$vote_url}");
      exit;
    }
  }


  static public function check($username) {
    global $CONF, $FORM;

    require_once("{$CONF['path']}/sources/misc/session.php");
    $session = new session;
    list($type, $data) = $session->get($FORM['sid']);
    $session->delete($FORM['sid']);

    if ($type == 'gateway' && $data == $username) {
      return 1;
    }
    else {
      return 0;
    }
  }

  static public function gateway($username) {
    global $DB, $LNG, $CONF, $FORM, $TMPL;

    if (empty($CONF['google_friendly_links'])) {
        header('X-Robots-Tag: noindex');
    }

    eval (PluginManager::getPluginManager ()->pluginHooks ('in_gateway_start'));

    require_once("{$CONF['path']}/sources/misc/session.php");
    $session = new session;
    $TMPL['sid'] = $session->create('gateway', $username);

    $TMPL['username'] = $username;
    $TMPL['gateway_top'] = '';
    $TMPL['gateway_bottom'] = '';



    $result = $DB->query("SELECT * FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}'", __FILE__, __LINE__);
    while ($row = $DB->fetch_array($result)) {
        $TMPL = array_merge($TMPL, $row);
    }

  // Recaptcha Mod
  require_once($CONF['path'].'/sources/recaptchalib.php');
  $publickey = "YOUR KEY HERE";
  $TMPL['captcha_code'] = recaptcha_get_html($publickey);
  // Recaptcha Mod

$result = $DB->query("SELECT title FROM {$CONF['sql_prefix']}_sites WHERE username = '{$username}' AND active='1'", __FILE__, __LINE__);
while (list($title) = $DB->fetch_array($result)) {
$TMPL['gateway_title'] = $title;
}


    eval (PluginManager::getPluginManager ()->pluginHooks ('in_gateway'));

    echo base::do_skin('gateway');
    exit;
  }

  static public function get_username($url) {
    global $CONF, $DB;

    $url = in::short_url($url);
    $count = 0;

    $username = '';
    while (!$username) {
      list($username) = $DB->fetch("SELECT username FROM {$CONF['sql_prefix']}_sites WHERE short_url = '{$url}'", __FILE__, __LINE__);

      if (!$username) {
        $url = in::short_url("{$url}.");
      }

      $count++;
      if ($count >= 10) {
        $username = 0;
        break;
      }
    }

    return $username;
  }

  static public function short_url($url) {
    // Lowercase
    $url = mb_strtolower($url);

    // Get rid of www.
    $url = preg_replace('/\/\/www./', '//', $url);

    // Get rid of trailing slash
    $url = preg_replace('/\/$/', '', $url);

    // Get rid of page after the last slash
    preg_match('/^(https?:\/\/.+)\/(.+)/', $url, $matches);
    if (!isset($matches[0])) {
      // Just a domain with a slash at the end
      $url = preg_replace('/^(https?:\/\/.+)\//', '\\1', $url);
    }
    else {
      // All other URLs
      // Check to see if after the trailing slash is a file or a directory
      if (mb_strpos($matches[2], '.')) { $url = $matches[1]; }
    }

    return $url;
  }
}
?>
then time for gateway.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>{$lng->gateway_header}</title>
<meta http-equiv="Content-Type" content="text/html;charset={$lng->charset}" />
    <script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript">


jQuery(document).ready(function(){
    jQuery(".visio_button").hover(function(){jQuery(this).stop().animate({opacity:0.8},250)},
    function(){jQuery(this).stop().animate({opacity:1.0},250)})
    });

</script>
<link rel="stylesheet" type="text/css" media="screen" href="{$skins_url}/{$skin_name}/screen.css" />
<style type="text/css">



.gatemessage {
display: block;
border-bottom: 1px dashed #ccc;
background: #f8f8f8;
padding: 5px;
}

#gatewrap {
border: 1px solid #ccc;
padding: 2px;
margin: 50px auto;
width: 700px;
border-radius: 15px;
background: #fff;
box-shadow: 0px 0px 10px #ccc;
}
#gatewrap2 {
border: 1px solid #f2f2f2;
padding: 1px; 
width: 696px;
border-radius: 15px;
background: #f7f7f7;
}

h1 {
display: block;
text-align: center;
margin: 0;
color: #666;
text-shadow: 1px 1px 1px #fff;
}


.visio_button, .visio_button:hover {
    text-decoration: none;
    border: 0;
    display:inline-block;
    color: #fff !important;
    }
.visio_button span {
    display:block;
    }

.small_button{
    margin:5px 10px 5px 0;
    padding:0 21px 0 0;
    font-size: .9em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -43px no-repeat scroll;
    color: #F4F4F2;
    }
.small_button span{
    margin:0;
    padding:16px 0 17px 21px;
    line-height: 10px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 0 no-repeat scroll;
    }


.medium_button{
    margin:5px 10px 5px 0;
    padding:0 23px 0 0;
    font-size: 1em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -136px no-repeat scroll;
    color: #F4F4F2;
    }
.medium_button span{
    margin:0;
    padding:19px 0 19px 23px;
    line-height: 12px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 -86px no-repeat scroll;
    }


.large_button{
    margin:5px 10px 5px 0;
    padding:0 34px 0 0;
    font-size: 1.1em;
    background: transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 100% -261px no-repeat scroll;
    color: #F4F4F2;
    border:0;
    outline:none;
    cursor:pointer;
    }
.large_button span{
    margin:0;
    padding:28px 0 33px 33px;
    line-height: 16px;
    background:transparent url({$skins_url}/{$skin_name}/img/bg-buttons-sprite.png) 0 -186px no-repeat scroll;
    border:0;
    outline:none;
    cursor:pointer;
    }

.red span, .red {
    background-image: url({$skins_url}/{$skin_name}/img/red-sprite.png) !important;
    }
.green span, .green {
    background-image: url({$skins_url}/{$skin_name}/img/green-sprite.png) !important;
    }
    input
    {
    line-height: 16px;
    outline:none;
    margin:0;
    padding:19px 0 19px 23px;
    border:0;
        cursor: pointer;
        cursor: hand;
        font-family: Arial, Tahoma, Verdana, Calibri;
        font-size: 16pt;
        text-align: center;
        color: #dadada;
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        border-radius: 5px;
    display:inline-block;
    }
    input:hover  {
    text-decoration: none;
    border: 0;
    display:inline-block;
    color: #fff !important;
}
    input:active { border: 0px; }

    .btnType1{
        background: -moz-linear-gradient(top, #7b9144, #657936 48%, #586b2d 50%, #485922 52%, #354415);
        background: -webkit-gradient(linear, center top, center bottom, from(#7b9144), color-stop(0.48, #657936), color-stop(0.5, #586b2d ), color-stop(0.52, #485922), to(#354415));
    }
</style>

</head>
<body>
<div id="gatewrap"><div id="gatewrap2">
    <h1>{$lng->gateway_header}</h1>

        <div id="gateway-top">{$gateway_top}</div>

        <p class="gatemessage">{$lng->gateway_text}</p><br /><br />
        <center><form method="post" action="{$list_url}/index.php?a=in&amp;u={$username}&amp;sid={$sid}">
<center><span>You can vote every 12 hours</span><br /><br />
{$captcha_error}
  {$captcha_code}
  <br />
<!--        <a href="{$list_url}/" class="visio_button large_button red"><span>{$lng->gateway_no_vote}</span></a>
        <a href="{$list_url}/index.php?a=in&amp;u={$username}&amp;sid={$sid}" class="visio_button large_button green"><span>{$lng->gateway_vote}</span></a>
        <div id="gateway-bottom">{$gateway_bottom}</div> -->     
        <p>
                <center><font size="4"<b>Vote for:</b><br>{$username} - <a href="{$url}" onclick="out(this,'{$username}');" rel="nofollow">{$url}</a></font><br />



<br>
<!--  <input type="submit" STYLE="text-align:center; color: #FFFFFF; font-family: Verdana; font-weight: bold; font-size: 14px; background-color: #72A4D2;" size="14" value="Click here to vote for {$gateway_title}" /><br /><br /><br /> --> 
  <input type="submit" class="btnType1" button value="Click here to vote for {$gateway_title}" /><br /><br /><br />

<a href="{$list_url}/" class="visio_button large_button red" target=""><span>{$lng->gateway_no_vote}</span></a><br>
        {$description}</center>
        </p>
       


</div></div>
</body>
</html>
 
Top