#!/usr/bin/python import cgi import random from math import floor # for session stuff import os, pickle from Cookie import SimpleCookie # for form access import cgitb; cgitb.enable() #import cgitb; cgitb.enable(display=0, logdir="/tmp") form = cgi.FieldStorage() if os.environ.has_key('HTTP_COOKIE'): sid = SimpleCookie(os.environ['HTTP_COOKIE'])['sid'].value else: import sha, time sid = sha.new(str(time.time())).hexdigest() sfile = '/tmp/http_session_'+sid error = "" # check args try: if (form.has_key("lover") and form.has_key("upper")): lover = int(form["lover"].value) upper = int(form["upper"].value) error = "success" else: error = "no result" except ValueError: error = "value error" # load session if os.path.exists(sfile): fh = open(sfile, 'rb') session = pickle.load(fh) fh.close() else: session = {} session['visits'] = 0 # update session session['visits'] += 1 # save session fh = open(sfile, 'w') pickle.dump(session, fh, 1) fh.close() # print header print "Content-Type: text/html" # HTML is following print "Set-Cookie: sid=" + sid # set cookie print # blank line, end of headers print "" print " " print " Random generator (" + error + ")" print " " print " " print "

Random generator (" + error + ")

" if error == "success": print " Random number [" + str(lover) + "," + str(upper) + "[ : " + str(int(floor(random.uniform(lover, upper)))) print "
" print " Lover bound:
" print " Upper bound:
" print " " print "
" print " Visits from your session: " + str(session['visits']) print " " print ""