Τη Κυριακή, 31 Μαρτίου 2013 9:14:43 μ.μ. UTC+3, ο χρήστης ru...@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 -- http://mail.python.org/mailman/listinfo/python-list