Last Problem, I Think, In CGI Script: Please Help

Ben Ocean zope at thewebsons.com
Thu May 3 21:21:23 EDT 2001


Hi;
I frame around a Web page from Kelley Blue Book on my car dealer's site. 
KBB has the visitor fill out a form. The data is then posted back to my car 
dealer's site via STDIN. I capture the data via cgi.FieldStorage(). I test 
to see if a certain variable of my own making is valid. If it is not, I 
raise a NameError exception and print to screen the data the visitor filled 
out in the form. Then I offer the visitor the opportunity to have this data 
sent back to the dealership or, conversely, printed to screen in a 
printer-friendly format. I do this by writing the data to a separate file 
at the same time as I originally post the data to the screen. The problem 
comes in when I try and retrieve the data from the file. When the visitor 
selects one of the aforementioned options, the variable of my own making 
for which I test (which the first time around threw the NameError 
exception) is set in STDIN in the URL and the same script is called. The 
page is printed to screen and the data is supposed to be read from the file 
I'd written, but for some reason it isn't! The data's in there, so what 
gives? Here's the part that's not working:
 >>>
    file = open("outfile.txt", "r")
    print file
<<<
Should work, right? Your help is appreciated. The entire file follows if 
you care to look for errors, although I've tested the rest and it appears 
to be in good, working order.
TIA,
BenO

SCRIPT FOLLOWS...

#!/usr/bin/python

import cgi, os
import string

print "Content-type: text/html\n\n"
form = cgi.FieldStorage()

save = []
for i in form.keys():
    v = form[i].value
    save.append(i + ": " + v + "\n")
    if form.has_key("token"):
      token = 1
data = string.join(save,"")
data = string.replace(data, "%%", "<br>")
data = string.replace(data, "PrintablePageHeading: <!--Kelley Logo graphic 
begins here-->", "")
data = string.replace(data, "<TABLE WIDTH=590 border=0><TR 
valign=\"top\"><TD width=\"258\">", "")
data = string.replace(data, "<IMG SRC=\"/kbbhead.gif\" width=258 height=72 
alt=\"Kelley Blue Book\">", "")
data = string.replace(data, "<td><img src=\"/images/modes/clear.gif\" 
border=\"0\" width=\"150\"></td></TR></TABLE>", "")
data = string.replace(data, "<!--logo ends here-->", "")
array = string.split(data, "QueryWindowStatus")
table = string.maketrans("`~@#$^&*+{}\|[]?", "----------------")
_saver = string.translate(array[0], table)

try:
  if token == 1:
    print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\" 
\"http://www.w3.org/TR/REC-html40/frameset.dtd\"> \n"
    print "<HTML><HEAD>\n"
    print "<meta http-equiv=\"content-type\" content=\"text/html; 
charset=iso-8859-1\">\n"
    print "<meta name=\"author\" content=\"This web site developed by 
TheWebsons.com. You may reach us at our web site, or by dialing 
360-855-0899.\">\n"
    print "<meta name=\"description\" content=\"Blade Chevrolet gives you 
all the information you need to shop online, including dealer costs!\">\n"
    print "<meta name=\"keywords\" content=\"preowned cars, preowned 
trucks, preowned RVs, new cars, new trucks, new RVs, recreational vehicles, 
Chevy, Chevrolet, Ford, Honda, Buick, Chrysler, Volkswagon, Cadillac, 
Lincoln, Oldsmobile, Pontiac\">\n"
    print "<meta http-equiv=\"distribution\" content=\"Global\">\n"
    print "<meta http-equiv=\"robots\" content=\"index all, follow all\">\n"
    #print "<SCRIPT TYPE=\"text/javascript\" LANGUAGE=JavaScript>\n"
    #print "<!--\n"
    #print "if (document.../images) {\n"
    #print "w = new Image();\n"
    #print "w.src = \"../images/new4.gif\";\n"
    #print ";\n"
    #print "won = new Image();\n"
    #print "won.src = \"../images/new5.gif\";\n"
    #print "}\n"
    #print "function image_activate(imageName) {\n"
    #print "if (document.../images) {\n"
    #print "imageOn = eval(imageName + \"on.src\");\n"
    #print "document [imageName].src = imageOn;\n"
    #print "}\n"
    #print "}\n"
    #print "function image_inactivate(imageName) {\n"
    #print "if (document.../images) {\n"
    #print "imageOff = eval(imageName + \".src\");\n"
    #print "document [imageName].src = imageOff;\n"
    #print "}\n"
    #print "}\n"
    #print "// -->\n"
    #print "</SCRIPT>\n"
    print "<style>\n"
    print ".heading { position: absolute; top: 100; left: 280 }\n"
    print ".headings { font-size: 25px; font-weight: 700; color: #0033ff; 
font-style: script, nuptialscript, georgia, lucinda sans, arial, helvetica }\n"
    print ".frame { position: absolute; top: 150; left: 50 }\n"
    print "</style>\n"
    print "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"../style2.css\">\n"
    print "<TITLE> Your Vehicle </TITLE>\n"
    print "</HEAD>\n"
    print "<BODY background=\"../images/template2-2-a.gif\" 
bgproperties=\"fixed\">\n"
    print "<span class=\"logo2\"><img src=\"../images/logo2.gif\" 
border=\"0\" alt=\"Blade Chevrolet logo\"></span>\n"
    print "<span class=\"home\"><a href=\"index.html\"><img 
src=\"../images/home2.gif\" border=\"0\" alt=\"Home\"></a></span>\n"
    print "<span class=\"pre\"><a href=\"Pre-Owned\"><img 
src=\"../images/pre-owned3.gif\" border=\"0\" alt=\"Pre-Owned 
Vehicles\"></a></span>\n"
    print "<span class=\"commercial\"><a href=\"Commercial\"><img 
src=\"../images/commercial2.gif\" border=\"0\" alt=\"Commercial 
Vehicles\"></a></span>\n"
    print "<span class=\"new_vehicles\"><a href=\"New/\" 
onMouseOver=\"image_activate('w')\" 
onMouseOut=\"image_inactivate('w')\"><img src=\"../images/new4.gif\" 
border=\"0\" name=\"w\" usemap=\"#n\" alt=\"New Cars & Trucks\"></a>\n"
    print "<map name=\"n\">\n"
    print "<area shape=\"rect\" coords=\"0,0,100,32\" href=\"New/Cars/\" 
alt=\"New Cars\">\n"
    print "<area shape=\"rect\" coords=\"100,0,204,32\" 
href=\"New/Trucks/\" alt=\"New Trucks\">\n"
    print "</map></span>\n"
    print "<span class=\"rvs\"><a href=\"RVs/\"><img 
src=\"../images/rvs2.gif\" border=\"0\" alt=\"RV's\"></a></span>\n"
    print "<span class=\"service\"><a href=\"Service.html\"><img 
src=\"../images/service2-cars.gif\" border=\"0\" alt=\"Service\"></a></span>\n"
    print "<span class=\"parts\"><a href=\"Parts.html\"><img 
src=\"../images/parts2-cars.gif\" border=\"0\" alt=\"Parts\"></a></span>\n"
    print "<span class=\"autobody\"><a href=\"Auto_Body.html\"><img 
src=\"../images/autobody2-cars.gif\" border=\"0\" alt=\"Auto 
Body\"></a></span>\n"
    print "<span class=\"staff\"><a href=\"Staff.html\"><img 
src=\"../images/staff2-cars.gif\" border=\"0\" alt=\"Staff\"></a></span>\n"
    print "<span class=\"directions\"><a href=\"Directions.html\"><img 
src=\"../images/directions2-cars.gif\" border=\"0\" 
alt=\"Directions\"></a></span>\n"
    print "<span class=\"history\"><a href=\"Our_History.html\"><img 
src=\"../images/history2-cars.gif\" border=0 alt=\"Our History\"></a></span>\n"
    print "<span class=\"email\"><a href=\"Directions_Body_Shop.html\"><img 
src=\"../images/email.gif\" border=0 alt=\"E-Mail Us!\"></a></span>\n"
    print "<span class=\"email1\"><span class=\"email2\"><a 
href=\"mailto:bodyshop at bladechevy.com\">E-Mail Us!</a></span></span>\n"
    print "<span class=\"heading\"><span class=\"headings\">Here's Your 
Vehicle!</span></span>\n"
    print "<span class=\"frame\">\n"
    #print "<center><font style=\"font: italic 800 22px futura\">If you 
would like us to help you purchase this car, <a href=\"#\" 
onClick=\"popUp()\">click here!</a><br>\n"
    #print "For a printable version, <a 
href=\"#\"  onClick=\"popUp()\">click here!</a></center><br> <br>\n"
    print "<font style=\"font: 17px verdana\">\n"
    file = open("outfile.txt", "r")
    print file
    print "</font></span>\n"
    print "</BODY>\n"
    print "</HTML>\n"
except NameError:
  file = open("outfile.txt", "w")
  file.write(_saver)
  file.close()
  print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\" 
\"http://www.w3.org/TR/REC-html40/frameset.dtd\"> \n"
  print "<HTML><HEAD>\n"
  print "<meta http-equiv=\"content-type\" content=\"text/html; 
charset=iso-8859-1\">\n"
  print "<meta name=\"author\" content=\"This web site developed by 
TheWebsons.com. You may reach us at our web site, or by dialing 
360-855-0899.\">\n"
  print "<meta name=\"description\" content=\"Blade Chevrolet gives you all 
the information you need to shop online, including dealer costs!\">\n"
  print "<meta name=\"keywords\" content=\"preowned cars, preowned trucks, 
preowned RVs, new cars, new trucks, new RVs, recreational vehicles, Chevy, 
Chevrolet, Ford, Honda, Buick, Chrysler, Volkswagon, Cadillac, Lincoln, 
Oldsmobile, Pontiac\">\n"
  print "<meta http-equiv=\"distribution\" content=\"Global\">\n"
  print "<meta http-equiv=\"robots\" content=\"index all, follow all\">\n"
  #print "<SCRIPT TYPE=\"text/javascript\" LANGUAGE=JavaScript>\n"
  #print "<!--\n"
  #print "if (document.../images) {\n"
  #print "w = new Image();\n"
  #print "w.src = \"../images/new4.gif\";\n"
  #print ";\n"
  #print "won = new Image();\n"
  #print "won.src = \"../images/new5.gif\";\n"
  #print "}\n"
  #print "function image_activate(imageName) {\n"
  #print "if (document.../images) {\n"
  #print "imageOn = eval(imageName + \"on.src\");\n"
  #print "document [imageName].src = imageOn;\n"
  #print "}\n"
  #print "}\n"
  #print "function image_inactivate(imageName) {\n"
  #print "if (document.../images) {\n"
  #print "imageOff = eval(imageName + \".src\");\n"
  #print "document [imageName].src = imageOff;\n"
  #print "}\n"
  #print "}\n"
  #print "// -->\n"
  #print "</SCRIPT>\n"
  print "<style>\n"
  print ".heading { position: absolute; top: 100; left: 280 }\n"
  print ".headings { font-size: 25px; font-weight: 700; color: #0033ff; 
font-style: script, nuptialscript, georgia, lucinda sans, arial, helvetica }\n"
  print ".frame { position: absolute; top: 150; left: 50 }\n"
  print "</style>\n"
  print "<link rel=\"stylesheet\" type=\"text/css\" href=\"../style2.css\">\n"
  print "<TITLE> Your Vehicle </TITLE>\n"
  print "</HEAD>\n"
  print "<BODY background=\"../images/template2-2-a.gif\" 
bgproperties=\"fixed\">\n"
  print "<span class=\"logo2\"><img src=\"../images/logo2.gif\" 
border=\"0\" alt=\"Blade Chevrolet logo\"></span>\n"
  print "<span class=\"home\"><a href=\"index.html\"><img 
src=\"../images/home2.gif\" border=\"0\" alt=\"Home\"></a></span>\n"
  print "<span class=\"pre\"><a href=\"Pre-Owned\"><img 
src=\"../images/pre-owned3.gif\" border=\"0\" alt=\"Pre-Owned 
Vehicles\"></a></span>\n"
  print "<span class=\"commercial\"><a href=\"Commercial\"><img 
src=\"../images/commercial2.gif\" border=\"0\" alt=\"Commercial 
Vehicles\"></a></span>\n"
  print "<span class=\"new_vehicles\"><a href=\"New/\" 
onMouseOver=\"image_activate('w')\" 
onMouseOut=\"image_inactivate('w')\"><img src=\"../images/new4.gif\" 
border=\"0\" name=\"w\" usemap=\"#n\" alt=\"New Cars & Trucks\"></a>\n"
  print "<map name=\"n\">\n"
  print "<area shape=\"rect\" coords=\"0,0,100,32\" href=\"New/Cars/\" 
alt=\"New Cars\">\n"
  print "<area shape=\"rect\" coords=\"100,0,204,32\" href=\"New/Trucks/\" 
alt=\"New Trucks\">\n"
  print "</map></span>\n"
  print "<span class=\"rvs\"><a href=\"RVs/\"><img 
src=\"../images/rvs2.gif\" border=\"0\" alt=\"RV's\"></a></span>\n"
  print "<span class=\"service\"><a href=\"Service.html\"><img 
src=\"../images/service2-cars.gif\" border=\"0\" alt=\"Service\"></a></span>\n"
  print "<span class=\"parts\"><a href=\"Parts.html\"><img 
src=\"../images/parts2-cars.gif\" border=\"0\" alt=\"Parts\"></a></span>\n"
  print "<span class=\"autobody\"><a href=\"Auto_Body.html\"><img 
src=\"../images/autobody2-cars.gif\" border=\"0\" alt=\"Auto 
Body\"></a></span>\n"
  print "<span class=\"staff\"><a href=\"Staff.html\"><img 
src=\"../images/staff2-cars.gif\" border=\"0\" alt=\"Staff\"></a></span>\n"
  print "<span class=\"directions\"><a href=\"Directions.html\"><img 
src=\"../images/directions2-cars.gif\" border=\"0\" 
alt=\"Directions\"></a></span>\n"
  print "<span class=\"history\"><a href=\"Our_History.html\"><img 
src=\"../images/history2-cars.gif\" border=0 alt=\"Our History\"></a></span>\n"
  print "<span class=\"email\"><a href=\"Directions_Body_Shop.html\"><img 
src=\"../images/email.gif\" border=0 alt=\"E-Mail Us!\"></a></span>\n"
  print "<span class=\"email1\"><span class=\"email2\"><a 
href=\"mailto:bodyshop at bladechevy.com\">E-Mail Us!</a></span></span>\n"
  print "<span class=\"heading\"><span class=\"headings\">Here's Your 
Vehicle!</span></span>\n"
  print "<span class=\"frame\">\n"
  print "<center><font style=\"font: italic 800 22px futura\">If you would 
like us to help you purchase this car, <a 
href=\"http://www.bladechevy.com/cgi-bin/kbb.cgi?token=1\">click 
here!</a></center><br>\n"
  #print "<center>For a printable version, <a 
href=\"#\"  onClick=\"popUp()\">click here!</a></center><br> <br>\n"
  print "<font style=\"font: 17px verdana\">\n"
  print _saver
  print "</font></span>\n"
  print "</BODY>\n"
  print "</HTML>\n"
  





More information about the Python-list mailing list