def single_POST(environ, start_response): '''Response to POST /single''' # Handle old CAPTCHA form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) code = form.getfirst('confidentcaptcha_code') captcha_id = form.getfirst('confidentcaptcha_captcha_id') check_status, check_body = captchalib.check_captcha(captcha_id, code) if check_body == 'True': verify_body = "CAPTCHA solution was correct. Click above to try another, or go back to the <a href='.'>config check</a>." else: verify_body = "CAPTCHA solution was incorrect. Click above to try another, or go back to the <a href='.'>config check</a>." # Create next CAPTCHA user_ip, user_agent = captchalib.get_user_info(environ) captcha_status, captcha_body = captchalib.create_captcha(user_ip, user_agent) # Verbose error handling. In your application, you may want to disable # CAPTCHA instead, or add a fallback CAPTCHA. if (captcha_status != 200): captcha_body = ("<b>Server returned error %d on create_captcha:</b>" % captcha_status) + captcha_body html_params = { 'captcha_body': captcha_body, 'verify_body': verify_body, } status = '200 OK' headers = [('Content-type', 'text/html; charset=utf-8')] html = single_template % html_params start_response(status, headers) return html.encode('utf-8')
def single_GET(environ, start_response): '''Response to GET /single''' user_ip, user_agent = captchalib.get_user_info(environ) captcha_status, captcha_body = captchalib.create_captcha(user_ip, user_agent) # Verbose error handling. In your application, you may want to disable # CAPTCHA instead, or add a fallback CAPTCHA. if (captcha_status != 200): captcha_body = ("<b>Server returned error %d on create_captcha:</b>" % captcha_status) + captcha_body html_params = { 'captcha_body': captcha_body, 'verify_body': 'Solve the CAPTCHA above, then click Submit.', } status = '200 OK' headers = [ ('Content-type', 'text/html; charset=utf-8'), ] html = single_template % html_params start_response(status, headers) return html.encode('utf-8')
def multiple_create_captcha(environ): '''Return a status code and HTML fragment for a multiple captcha''' user_ip, user_agent = captchalib.get_user_info(environ) block_status, block_id = captchalib.create_block(user_ip, user_agent) # Verbose error handling. In your application, you may want to disable # CAPTCHA instead, or add a fallback CAPTCHA. if (block_status != 200): body = ("<b>Server returned error %d on create_block:</b>" % block_status) + block_id return block_status, body else: captcha_status, captcha_body = captchalib.create_instance(block_id, include_audio_form=include_audio) # Verbose error handling. In your application, you may want to disable # CAPTCHA instead, or add a fallback CAPTCHA. if (captcha_status != 200): body = ("<b>Server returned error %d on create_instance:</b>" % captcha_status) + captcha_body return captcha_status, body else: return captcha_status, captcha_body