<?php 
include '../lib/rules/RuleInterface.php'; 
include '../lib/rules/BaseRule.php'; 
include '../lib/rules/FormTimeTrapRule.php'; 
include '../lib/NoCaptchaAntiSpam.php'; 
 
use daxslab\nocaptcha\NoCaptchaAntiSpam; 
use daxslab\nocaptcha\rules\FormTimeTrapRule; 
 
$title = "Form based time trap"; 
 
// Declare no captcha anti spam object with form based time trap 
$noCaptchaAntiSpam = NoCaptchaAntiSpam::create([ 
        'rules' => [ 
            FormTimeTrapRule::create([ 
                // form input field name 
                'name' => 'time_form', 
                // number of seconds allowed before submission 
                'time' => 3, 
            ]) 
        ], 
]); 
 
 ?> 
 
<?php 
include_once('common/header.php'); 
?> 
 
<div class="row"> 
    <div class="col-md-12"> 
 
        <h1><?= $title ?></h1> 
 
        <p> 
            A time trap will be triggered when a form is submitted too fast. The form based time trap will include a hidden 
            input field containing an encrypted timestamp. Unlike <a href="session_time_trap.php">Session based time trap</a>, 
            the form based time trap doesn't need active PHP sessions and can allow form submissions from multiple tabs. 
        </p> 
 
        <h2>Example:</h2> 
 
        <!--  show an alert message if is a bot submit  --> 
        <?php if ($_POST): ?> 
            <?php if ($noCaptchaAntiSpam->checkSubmit()): ?> 
                <div class="alert alert-success" role="alert"> 
                    Form submitted correctly 
                </div> 
            <?php else: ?> 
                <div class="alert alert-danger" role="alert"> 
                    Bot detected 
                </div> 
            <?php endif; ?> 
        <?php endif; ?> 
 
        <form id="contactForm" method="post"> 
            <div class="form-group"> 
                <label for="contactName">Name</label> 
                <input class="form-control" name="contact_name" id="contactName" placeholder="Enter name"> 
            </div> 
            <div class="form-group"> 
                <label for="contactEmail1">Email address</label> 
                <input type="email" name="contact_email" class="form-control" id="contactEmail1" placeholder="Enter email"> 
            </div> 
            <div class="form-group"> 
                <label for="contactBody">Body</label> 
                <textarea name="contact_body" class="form-control" id="contactBody" placeholder="Write to us"></textarea> 
            </div> 
            <button type="submit" name="submit_button" class="btn btn-primary">Submit</button> 
            <!--  Include rules form elements  --> 
            <?= $noCaptchaAntiSpam->renderRules() ?> 
        </form> 
 
        <br> 
        <h2>PHP example code:</h2> 
 
        <?php 
        $code = <<< EOT 
<?php 
use daxslab\\nocaptcha\\NoCaptchaAntiSpam; 
use daxslab\\nocaptcha\\rules\\FormTimeTrapRule; 
 
// Declare no captcha anti spam object with form based time trap 
\$noCaptchaAntiSpam = NoCaptchaAntiSpam::create([ 
        'rules' => [ 
            FormTimeTrapRule::create([ 
                // form input field name 
                'name' => 'time_form', 
                // number of seconds allowed before submission 
                'time' => 3, 
            ]) 
        ], 
]); 
 
 ?> 
 
<!--  show an alert message if is a bot submit  --> 
<?php if (\$_POST): ?> 
    <?php if (\$noCaptchaAntiSpam->checkSubmit()): ?> 
        <div class="alert alert-success" role="alert"> 
            Form submitted correctly 
        </div> 
    <?php else: ?> 
        <div class="alert alert-danger" role="alert"> 
            Bot detected 
        </div> 
    <?php endif; ?> 
<?php endif; ?> 
 
<form id="contactForm" method="post"> 
    <div class="form-group"> 
        <label for="contactName">Name</label> 
        <input class="form-control" name="contact_name" id="contactName" placeholder="Enter name"> 
    </div> 
    <div class="form-group"> 
        <label for="contactEmail1">Email address</label> 
        <input type="email" name="contact_body" class="form-control" id="contactEmail1" placeholder="Enter email"> 
    </div> 
    <div class="form-group"> 
        <label for="contactBody">Body</label> 
        <textarea name="contact_email" class="form-control" id="contactBody" placeholder="Write to us"></textarea> 
    </div> 
    <button type="submit" name="submit_button" class="btn btn-primary">Submit</button> 
    <!--  Include rules form elements  --> 
    <?= \$noCaptchaAntiSpam->renderRules() ?> 
</form> 
 
EOT; 
 
        ?> 
 
        <pre> 
            <code class="HTML"> 
<?= htmlspecialchars($code) ?> 
            </code> 
        </pre> 
    </div> 
</div> 
 
<?php 
include_once('common/footer.php'); 
?> 
 
 |