Python 3.2.3 and my blank page

Νίκος Γκρ33κ nikos.gr33k at gmail.com
Sun Mar 31 15:12:03 EDT 2013


Τη Κυριακή, 31 Μαρτίου 2013 9:14:43 μ.μ. UTC+3, ο χρήστης ru... at yahoo.com έγραψε:
> On 03/31/2013 08:03 AM, Νίκος Γκρ33κ wrote:
> 
> > Hello all,
> 
> > 
> 
> > i need some help
> 
> > i recently changes pythoon 2.6 code => python 3.2.3 but my script although not producing any errors now doesnt display anything else but a blank page at htp://superhost.gr
> 
> > can you help?
> 
> > 
> 
> > I tried MySQLdb, pymysql, oursql, but nothing happens.
> 
> > i still get a blank page. I dont know what else to try since i see no error.
> 
> 
> 
> When I look at your page and do a "show source" in my browser
> 
> it shows me the following:
> 
> 
> 
>   <!--: spam
> 
>   Content-Type: text/html
> 
> 
> 
>   <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
> 
>   <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
> 
>   </font> </font> </font> </script> </object> </blockquote> </pre>
> 
>   </table> </table> </table> </table> </table> </font> </font> </font>
> 
> 
> 
> One obvious error is that you are writing html text before the 
> 
> "Content-Type: text/html" line.  And whatever code is supposed
> 
> to create the content is not getting run.
> 
> 
> 
> > can anyone suggest anything?
> 
> 
> 
> It is hard to help you because there is no code to look at.  
> 
> Also, I looked at your web site a couple days ago after you 
> 
> said you were getting a blank page, but I got a traceback 
> 
> page.  I realize your are working on the problem and changing 
> 
> things but nobody wants to spend time looking for a problem, 
> 
> only to find out you've changed the code and their time was 
> 
> wasted.
> 
> 
> 
> Also, your requests for help are spread out over multiple 
> 
> threads making it hard for anyone to figure out what you've 
> 
> already tried and what the current state of your code and 
> 
> problems are.
> 
> 
> 
> I haven't used MySql so I can't offer any specific help regarding
> 
> that, but I can say how I would try to attack your problem if it 
> 
> were my problem.  
> 
> 
> 
> First, Python 2 and Python 3 are two different languages.  Code
> 
> written for Python 2 will not run under Python 3 (in general) 
> 
> unless it is changed.  So first, are you sure that the database
> 
> connector (dbi module) runs under Python 3?  Are you sure it is 
> 
> installed properly? 
> 
> 
> 
> To answer this question definitively you can write a simple 
> 
> Python program to import the dbi module, open a connection to
> 
> your database and execute a simple query.
> 
> 
> 
> Once you are sure you can access the database with Python 3 
> 
> code, next is your cgi script code.  
> 
> 
> 
> Try running your cgi script interactively.
> 
> 
> 
> But when you do this, remember that the environment that your 
> 
> script sees is different when you run it interactively than 
> 
> when Apache runs your script.  When Apache runs your script 
> 
> it might be using a different userid (which can affect what 
> 
> files your script can open), there different environment variables 
> 
> (like REMOTE_HOST which will be missing when you run interactively).
> 
> 
> 
> You can see the environment that exists when Apache is running 
> 
> your script by creating a cgi script like:
> 
> 
> 
> ------------
> 
> #!/bin/env python3
> 
> import cgi, os, sys
> 
> 
> 
> print("Content-type: text/html\n")
> 
> print("""\
> 
> <!DOCTYPE html
> 
>         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> 
>          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> 
> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
> 
> <head>
> 
> <title>Python CGI Environment</title>
> 
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
> 
> </head>
> 
> <body>
> 
> <h2>Python CGI Environment</h2>
> 
> """)
> 
> print("Python %s<br>" % sys.version)
> 
> print("Current directory: %s<br><br>" % os.getcwd())
> 
> print("Environment Variables:<br>")
> 
> for k in sorted(os.environ.keys()):
> 
>     print("  %s: %s<br>" % (k, cgi.escape(os.environ[k])))
> 
> 
> 
> print("</body></html>")
> 
> ------------
> 
> 
> 
> Open that cgi script in your browser.  You can also run it
> 
> interactively and you'll see many differences with what
> 
> you see in your browser.
> 
> 
> 
> When you run your failing cgi script interactively, you can 
> 
> give it an argument that is the url of the cgi script.  For 
> 
> example, if you do:
> 
> 
> 
>   cd ~me/public_html/cgi_bin/
> 
>   python3 myscript.py 'http://superhost.gr/myscript.cgi'
> 
> 
> 
> the cgi module will parse the url argument and setup the right
> 
> values for the QUERY_STRING environment value that Apache would 
> 
> normally set up.
> 
> 
> 
> There may be other problems resulting from the different interactive
> 
> environment.  If I recall, at one point you were having an error 
> 
> because REMOTE_ADDR was not present in the interactive environment.
> 
> 
> 
> Perhaps the best way to deal with that is to modify your code.
> 
> Foe example replace
> 
> 
> 
>   host = socket.gethostbyaddr( os.environ['REMOTE_ADDR'] )[0]
> 
> 
> 
> with 
> 
>   try:
> 
>     host = socket.gethostbyaddr( os.environ['REMOTE_ADDR'] )[0]
> 
>   except KeyError:
> 
>     host = 'not available' 
> 
> 
> 
> Then your script will be able to run interactively and you can 
> 
> continue debugging the real problems in it.  Of course there 
> 
> may be other issue you have to fix as well but find and fix 
> 
> them one at a time.  
> 
> 
> 
> Add print statements to your code to find out where things are 
> 
> going wrong.  Don't trust your own thinking about the code!
> 
> If you think a variable should be 3 at some point in the code,
> 
> print it out and verify it!
> 
> 
> 
> After you get the program to generate html that looks ok, comment
> 
> out your debugging print statements (so that only html is printed), 
> 
> redirect the html output into a file, them open the file in your
> 
> browser and see if it looks ok.  If not, modify the code until 
> 
> it does.
> 
> 
> 
> After you've got the script producing good output interactively
> 
> see if works from Apache as cgi script.  If not, it should be 
> 
> much easier now to find the problem since most of the other 
> 
> problems have been fixed.
> 
> 
> 
> 
> 
> > I can even provide host:port user & pass for someone willing to take a look from the inside.
> 
> 
> 
> Sorry, but I don't use MySql so I probably wouldn't be much help.
> 
> 
> 
> You might consider posting (and updating when you change it!!) your
> 
> code to some public place on the internet like http://pastebin.com
> 
> so that anyone who wants to try helping you has some code to look 
> 
> at.  Be sure to remove any userids and passwords in your code 
> 
> before posting it publicly.  And please don't post it to this 
> 
> list because it is too big.

Firsly, thank you for your willing to help me.

i wrote, uploaded an chmoded test.py and you can see the cgi enviromental table here:  http://superhost.gr/cgi-bin/test.py

All values seem okey, so it really isnt somehting wrong with the cgi enviroment.

Also i chnagen the host line to what you suggestes so interactive prompts will not give errors.

Please take a look the values to see if something not look  ok and i 'am about to create another trest script to check if i can pefrom a simple mysql query with python 3.2.3 just to make sure the MySQLdb connector work ok with 3.x



More information about the Python-list mailing list