• Congratulations to the OTLand January Mapping Competition Winner! The grand prize of Otland Premium goes to Andréew.
  • Sign up for February Mapping Competition! The prize includes Otland Premium time.
  • There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

AAC Recaptcha with znote

Shadow_

Intermediate OT User
Joined
Jun 2, 2018
Messages
472
Best answers
17
Reaction score
113
Location
Cairo, Egypt
Hello,I have tried to know how to add recaptcha for ZnoteAAC 1.5 but i didn't find a way to do it since it doesn't appear in create account page and when i try to create account it says please check the captcha form.

and i already changed it to true in config.php and sure 100% that i wrote the correct codes for recaptcha.
anybody have idea what did i do wrong or what should i do to let it work ?
here is my register.php
Code:
<?php
require_once 'engine/init.php';
logged_in_redirect();
include 'layout/overall/header.php';
require_once('config.countries.php');

if (empty($_POST) === false) {
    // $_POST['']
    $required_fields = array('username', 'password', 'password_again', 'email', 'selected');
    foreach($_POST as $key=>$value) {
        if (empty($value) && in_array($key, $required_fields) === true) {
            $errors[] = 'You need to fill in all fields.';
            break 1;
        }
    }

    // check errors (= user exist, pass long enough
    if (empty($errors) === true) {
        /* Token used for cross site scripting security */
        if (!Token::isValid($_POST['token'])) {
            $errors[] = 'Token is invalid.';
        }

        if ($config['use_captcha']) {
            $captcha = (isset($_POST['g-recaptcha-response'])) ? $_POST['g-recaptcha-response'] : false;
            if(!$captcha) {
                $errors[] = 'Please check the the captcha form.';
            } else {
                $secretKey = $config['captcha_secret_key'];
                $ip = $_SERVER['REMOTE_ADDR'];
                // curl start
                $curl_connection = curl_init("https://www.google.com/recaptcha/api/siteverify");
                $post_string = "secret=".$secretKey."&response=".$captcha."&remoteip=".$ip;
                curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 5);
                curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 0);
                curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
                $response = curl_exec($curl_connection);
                curl_close($curl_connection);
                // Curl end
                $responseKeys = json_decode($response,true);
                if(intval($responseKeys["success"]) !== 1) {
                    $errors[] = 'Captcha failed.';
                }
            }
        }

        if (user_exist($_POST['username']) === true) {
            $errors[] = 'Sorry, that username already exist.';
        }

        // Don't allow "default admin names in config.php" access to register.
        $isNoob = in_array(strtolower($_POST['username']), $config['page_admin_access']) ? true : false;
        if ($isNoob) {
            $errors[] = 'This account name is blocked for registration.';
        }
        if (preg_match("/^[a-zA-Z0-9]+$/", $_POST['username']) == false) {
            $errors[] = 'Your account name can only contain characters a-z, A-Z and 0-9.';
        }
        // name restriction
        $resname = explode(" ", $_POST['username']);
        foreach($resname as $res) {
            if(in_array(strtolower($res), $config['invalidNameTags'])) {
                $errors[] = 'Your username contains a restricted word.';
            }
            else if(strlen($res) == 1) {
                $errors[] = 'Too short words in your name.';
            }
        }
        if (strlen($_POST['username']) > 32) {
            $errors[] = 'Your account name must be less than 33 characters.';
        }
        // end name restriction
        if (strlen($_POST['password']) < 6) {
            $errors[] = 'Your password must be at least 6 characters.';
        }
        if (strlen($_POST['password']) > 100) {
            $errors[] = 'Your password must be less than 100 characters.';
        }
        if ($_POST['password'] !== $_POST['password_again']) {
            $errors[] = 'Your passwords do not match.';
        }
        if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
            $errors[] = 'A valid email address is required.';
        }
        if (user_email_exist($_POST['email']) === true) {
            $errors[] = 'That email address is already in use.';
        }
        if ($_POST['selected'] != 1) {
            $errors[] = 'You are only allowed to have an account if you accept the rules.';
        }
        if (validate_ip(getIP()) === false && $config['validate_IP'] === true) {
            $errors[] = 'Failed to recognize your IP address. (Not a valid IPv4 address).';
        }
            if (strlen($_POST['flag']) < 1) {
                        $errors[] = 'Please choose country.';
                }
    }
}

?>
<h1>Register Account</h1>
<?php
if (isset($_GET['success']) && empty($_GET['success'])) {
    if ($config['mailserver']['register']) {
        ?>
        <h1>Email authentication required</h1>
        <p>We have sent you an email with an activation link to your submitted email address.</p>
        <p>If you can't find the email within 5 minutes, check your <strong>junk/trash inbox (spam filter)</strong> as it may be mislocated there.</p>
        <?php
    } else echo 'Congratulations! Your account has been created. You may now login to create a character.';
} elseif (isset($_GET['authenticate']) && empty($_GET['authenticate'])) {
    // Authenticate user, fetch user id and activation key
    $auid = (isset($_GET['u']) && (int)$_GET['u'] > 0) ? (int)$_GET['u'] : false;
    $akey = (isset($_GET['k']) && (int)$_GET['k'] > 0) ? (int)$_GET['k'] : false;
    // Find a match
    $user = mysql_select_single("SELECT `id`, `active` FROM `znote_accounts` WHERE `account_id`='$auid' AND `activekey`='$akey' LIMIT 1;");
    if ($user !== false) {
        $user = (int) $user['id'];
        $active = (int) $user['active'];
        // Enable the account to login
        if ($active == 0) {
            mysql_update("UPDATE `znote_accounts` SET `active`='1' WHERE `id`= $user LIMIT 1;");
        }
        echo '<h1>Congratulations!</h1> <p>Your account has been created. You may now login to create a character.</p>';
    } else {
        echo '<h1>Authentication failed</h1> <p>Either the activation link is wrong, or your account is already activated.</p>';
    }
} else {
    if (empty($_POST) === false && empty($errors) === true) {
        if ($config['log_ip']) {
            znote_visitor_insert_detailed_data(1);
        }

        //Register
        $register_data = array(
            'name'        =>    $_POST['username'],
            'password'    =>    $_POST['password'],
            'email'        =>    $_POST['email'],
            'created'    =>    time(),
            'ip'        =>    getIPLong(),
            'flag'        =>     $_POST['flag']
        );

        user_create_account($register_data, $config['mailserver']);
        if (!$config['mailserver']['debug']) header('Location: register.php?success');
        exit();
        //End register

    } else if (empty($errors) === false){
        echo '<font color="red"><b>';
        echo output_errors($errors);
        echo '</b></font>';
    }
?>
    <form action="" method="post">
        <ul>
            <li>
                Account Name:<br>
                <input type="text" name="username">
            </li>
            <li>
                Password:<br>
                <input type="password" name="password">
            </li>
            <li>
                Password again:<br>
                <input type="password" name="password_again">
            </li>
            <li>
                Email:<br>
                <input type="text" name="email">
            </li>
            <li>
                Country:<br>
                <select name="flag">
                    <option value="">(Please choose)</option>
                    <?php
                    foreach(array('pl', 'se', 'br', 'us', 'gb', ) as $c)
                        echo '<option value="' . $c . '">' . $config['countries'][$c] . '</option>';

                        echo '<option value="">----------</option>';
                        foreach($config['countries'] as $code => $c)
                            echo '<option value="' . $code . '">' . $c . '</option>';
                    ?>
                </select>
            </li>
    <?php
            if ($config['use_captcha']) {
                ?>
                <li>
                     <div class="g-recaptcha" data-sitekey="<?php echo $config['captcha_site_key']; ?>"></div>
                </li>
                <?php
            }
            ?>
            <li>
                <h2>Server Rules</h2>
                <p>The golden rule: Have fun.</p>
                <p>If you get pwn3d, don't hate the game.</p>
                <p>No <a href='http://en.wikipedia.org/wiki/Cheating_in_video_games' target="_blank">cheating</a> allowed.</p>
                <p>No <a href='http://en.wikipedia.org/wiki/Video_game_bot' target="_blank">botting</a> allowed.</p>
                <p>The staff can delete, ban, do whatever they want with your account and your <br>
                    submitted information. (Including exposing and logging your IP).</p>
            </li>
            <li>
                Do you agree to follow the server rules?<br>
                <select name="selected">
                  <option value="0">Umh...</option>
                  <option value="1">Yes.</option>
                  <option value="2">No.</option>
                </select>
            </li>
            <?php
                /* Form file */
                Token::create();
            ?>
            <li>
                <input type="submit" value="Create Account">
            </li>
        </ul>
    </form>
<?php
}
include 'layout/overall/footer.php';
?>
 

roriscrave

Well-Known Member
Joined
Dec 7, 2011
Messages
764
Best answers
19
Reaction score
90
Hello,I have tried to know how to add recaptcha for ZnoteAAC 1.5 but i didn't find a way to do it since it doesn't appear in create account page and when i try to create account it says please check the captcha form.
i have the same error (i'm using default files)
when i put in config.php
Code:
$config['use_captcha'] = true;
dont appears a captcha when i will create acc, and when i try to create acc return msg: please check the captcha form.
but captcha form dont appear, so its not possible check
and appear it:
Code:
Notice: Undefined index: g-recaptcha-response in C:\xampp\htdocs\register.php on line 25
my line 25:
Code:
if(!verifyGoogleReCaptcha($_POST['g-recaptcha-response'])) {
 

Znote

<?php echo $title; ?>
Staff member
Global Moderator
Premium User
Joined
Feb 14, 2008
Messages
6,706
Best answers
213
Reaction score
1,418
Location
Norway, Oslo
Top