1. Did you try the headers for no-caching of the page? 2. If you wish to avoid dupes in a DB, Primary Keys are the tool to prevent duplicates.
On Thu, Sep 24, 2009 at 11:01 AM, victorsubervi <victorsube...@gmail.com>wrote: > in line... > > On Wed, Sep 23, 2009 at 9:13 PM, BJ Swope <bigbluesw...@gmail.com> wrote: > >> What is your code not doing? >> > > see below > >> >> Are you winding up with duplicate data in the DB? >> > > yes > >> >> Is your web browser re-submitting the form with the same data if you >> refresh the screen? >> > > yes > >> >> Is your web browser pre-filling the fields of the form due to caching? >> > > no > > If I must use cookies, do I want cookielib/cookiejar, or just Cookie? > TIA. > V > >> >> I don't understand what's not working >> >> >> On Wed, Sep 23, 2009 at 12:40 PM, Victor Subervi <victorsube...@gmail.com >> > wrote: >> >>> I've been trying the hidden field, but the problem is that when I set the >>> variable flag, it stays in memory. I would rather just pass a var like I've >>> been trying, but I don't think it's possible. Any ideas? Is a session cookie >>> the only way? Here's more simplified code: >>> >>> #!/usr/bin/python >>> >>> import cgitb; cgitb.enable() >>> import cgi >>> import sys,os >>> sys.path.append(os.getcwd()) >>> import MySQLdb >>> import string, re >>> >>> def client(): >>> form = cgi.FieldStorage() >>> client = string.replace(string.replace(form.getfirst('client', ''), >>> "'", '''), '"', '"') >>> flag = form.getfirst('flag', '') >>> print "Content-Type: text/html" >>> print >>> print """ >>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" " >>> http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> >>> <head xmlns="http://www.w3.org/1999/xhtml"> >>> <body> >>> """ >>> if flag == '': >>> print """ >>> <form method="post" action="client.py"> >>> Company Name: <input type='text' value='' size='20' maxlength='100' >>> name='client' /><br /> >>> <input type='hidden' name='flag' value='y' /> >>> <div align='center'> >>> <input type='submit' value=' Send ' /> >>> </div> >>> </form> >>> </body></html> >>> """ >>> else: >>> host = 'h' >>> db = 'db' >>> user = 'u' >>> passwd = '1' >>> database = MySQLdb.connect(host, user, passwd, db) >>> cursor = database.cursor() >>> cursor.execute('insert into companies (client);' % (client)) >>> cursor.close() >>> print '</body></html>' >>> >>> client() >>> >>> TIA, >>> V >>> >>> >>> On Tue, Sep 22, 2009 at 1:43 PM, Dennis Lee Bieber < >>> wlfr...@ix.netcom.com> wrote: >>> >>>> On Tue, 22 Sep 2009 12:50:31 -0400, Victor Subervi >>>> <victorsube...@gmail.com> declaimed the following in >>>> gmane.comp.python.general: >>>> >>>> > Well it's Web stuff, sure, but it's written in python :) The code >>>> follows. >>>> > The problem is that I haven't figured out how to tell the program that >>>> the >>>> > user has entered data and to clear the cache of that data so that it's >>>> not >>>> > re-entered. How do I do that? >>>> >>>> Remember, HTTP is a stateless protocol. EACH submission is >>>> considered a totally new transaction with no memory of the previous >>>> processing. >>>> >>>> Possible solutions... >>>> >>>> * Use a session cookie that identifies what phase in the multistep >>>> processing you are in... >>>> >>>> * Use a hidden field in the form that defaults to, say "False", >>>> when >>>> you first display the form, but then gets set to "True" during the first >>>> response process (and is then sent back out with "True" so the second >>>> response takes a different branch). >>>> >>>> -- >>>> Wulfraed Dennis Lee Bieber KD6MOG >>>> wlfr...@ix.netcom.com >>>> HTTP://wlfraed.home.netcom.com/<http://wlfraed.home.netcom.com/> >>>> >>>> -- >>>> http://mail.python.org/mailman/listinfo/python-list >>>> >>> >>> >>> -- >>> http://mail.python.org/mailman/listinfo/python-list >>> >>> >> >> >> -- >> To argue that honorable conduct is only required against an honorable >> enemy degrades the Americans who must carry out the orders. -- Charles >> Krulak, Former Commandant of the Marine Corps >> >> We are all slave to our own paradigm. -- Joshua Williams >> >> If the letters PhD appear after a person's name, that person will remain >> outdoors even after it's started raining. -- Jeff Kay >> >> >> -- >> http://mail.python.org/mailman/listinfo/python-list >> >> > -- To argue that honorable conduct is only required against an honorable enemy degrades the Americans who must carry out the orders. -- Charles Krulak, Former Commandant of the Marine Corps We are all slave to our own paradigm. -- Joshua Williams If the letters PhD appear after a person's name, that person will remain outdoors even after it's started raining. -- Jeff Kay
-- http://mail.python.org/mailman/listinfo/python-list