<?php  // ۞//  text { encoding:utf-8  ;  bom:no  ;  linebreaks:unix  ; tabs:4sp ; }
/*

    corz simple GD image verification script demo    v0.3.3

    Now with text-based captcha option, for non image-capable browsers, or if
    you just prefer that. The demo also enables you to switch between the two
    modes, to show how you could let your users do that.

    You can now set your preferred authentication method in the preferences (or
    from the calling script). The 'auto' mode is the most sensible, where
    gd-verify will check the browser's capabilities for you. See inside the
    preference section of the class for more notes and information about this.

    ;o) Cor

    (c) 2003->tomorrow! ~ cor + corz.org ;o)

    Please view the license for this free software, here:

        https://corz.org/free-scripts-licence.nfo

*/

$message '';

include 
'gd-verify.php';
$verify = new verificationImage();


// like corzoogle, a two-in-one page..
if (isset($_GET['do_img'])) {
    
$verify->outputImage();
    die;
}

// for the demo
if (isset($_POST['reset'])) {
    
$_SESSION['gdv']['gd_verified'] = null;
    
// recreate the object in that case..
    
$verify = new verificationImage();
}

if (
$verify->getVerification() === true) {
    
$message 'Congratulations Human!';
} else {
    
$message 'Please enter code..<br />
    <span style="font-size:xx-small">(if you find the code difficult to decipher, click it for a new code!)</span>'
;
}

echo 
'<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
<title>corz simple gd image verification</title>
<style media="screen">
/*<![CDATA[*/
<!--
body {
    background-color: #fff;
    font-size: 0.9em;
    font-family: Tahoma, "Trebuchet MS", Trebuchet, "Lucida Grande", sans-serif;
    }
.title { color: #4b3403; }
.message { color: #423500; }
.text-verify {}

.verify-title {
    font-weight: bold;
}
.verify-text {
    margin: 0.83rem 0;
    color: #051838;
    font-family: "Lucida Console", Consolas, "Courier New", Courier, monaco, ProFontWindows, monospace;
    font-size: small;
}
.ortext {
    font-size: 90%;
}

//-->
/*]]>*/
</style>
</head>
<body>

<form id="verify" method="post" action="'
,$_SERVER['SCRIPT_NAME'],'">
<div style="text-align:center;">
    <h1 class="title">corz simple gd image verification</h1>
    <h3 class="message">'
,$message,'</h3>';

$text_based 0;
$checkit '';
if (isset(
$_REQUEST['text-verify']) and $_REQUEST['text-verify'] == 1) {
    
$text_based 1;
    
$checkit 'checked ';
}

if (
$verify->getVerification() != true) {

    
$CanHandleImages $verify->imageCapable();

    if (!
$CanHandleImages or $text_based == 1) {
        echo 
'
    <div class="text-verify" onclick="document.getElementById(\'verify\').submit();" title="click me for fresh text!">
        '
,$verify->outputImage(),'
    </div>'
;
    } else {            
//    ?foo.png is NOT required. There's a prize if you can tell me why I do it!
        
echo '
    <img title="click me for a fresh image!" id="gd-verify-image" src="'
,
        
$_SERVER['SCRIPT_NAME'],'?do_img=true&width=250&amp;height=150&amp;font_size=50&amp;foo.png" alt="gd verification image" onclick="this.src=document.getElementById(\'gd-verify-image\').src + \'&r=\'" />';
    }

    echo 
'<br />
    <br />
    '
,$verify->doInput(),'&nbsp;
    <input type="submit" name="check-it" value="check it!" /><br />
    <br />

    <div class="ortext">
        <label for="text-verify">use text-based authentication
        <input type="checkbox" name="text-verify" id="text-verify" value="1" onclick="document.getElementById(\'verify\').submit();" '
.
                                                                                        
$checkit.'title="use text-based authentication" /></label>
    </div>'
;

} else {
    echo 
'<br /><br /><span style="text-align: right;"><input type="submit" name="reset" value="reset" /></span>';
}
echo 
'
</div>
</form>'
;

if (
$CanHandleImages) {
    echo 
'
<script nonce="'
.$_SERVER['CSP_NONCE'].'">
//<![CDATA[
<!--
    document.getElementById(\'gd_string\').focus();
//-->
//]]>
</script>'
;
}


echo 
'
</body>
</html>'
;


?>
back to the source menu
downloadtest

Welcome to corz.org!

I'm always messing around with the back-end.. See a bug? Wait a minute and try again. Still see a bug? Mail Me!