Am Wed, 08 Mar 2006 00:19:55 -0800 schrieb Paul Rubin: > I'm trying to write a simple cgi that reads a post from the user's > browser, does some stuff with the form data, and redirects the browser > back to the originating url, i.e. I want the cgi to send a 302 > redirect.
Hi, I have this setup for a small script (for bigger things I use quixote) def cgi_main(): stdout=sys.stdout sys.stdout=sys.stderr # print soll zu Apache-Log try: html=cgi_html() except ReturnThis, r: stdout.write(str(r)) return stdout.write("Content-Type: text/html\n\n%s" % html) CGI-Script *very* small ........... # Python Imports import os import sys import cgitb cgitb.enable() import foo if __name__=="__main__": foo.cgi_main() ............ file foo: def cgi_main(): stdout=sys.stdout sys.stdout=sys.stderr # print should go to Apache-Log try: html=cgi_html() except ReturnThis, r: stdout.write(str(r)) return stdout.write("Content-Type: text/html\n\n%s" % html) class ReturnThis(Exception): pass class Redirect(ReturnThis): def __init__(self, destination): if os.environ.get("HTTPS")=="on": http="https://" else: http="http://" url="%s%s%s%s" % (http, os.environ["SERVER_NAME"], os.environ["SCRIPT_NAME"], destination) header="Status: 302 Moved Temporarily\nLocation: %s\n\n" % ( url) ReturnThis.__init__(self, header) Now you can 'raise Redirect("mylocation")' anywhere in your code. HTH, Thomas -- Thomas Güttler, http://www.thomas-guettler.de/ E-Mail: guettli (*) thomas-guettler + de Spam Catcher: [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list