2011-03-26 155 views
2

只是做與HTML文件中的基本Python項目,我碰到這給了有關如何我可以執行代碼的想法的教程,Python的CGI腳本不執行

這裏是HTML代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
    <meta content="text/html; charset=ISO-8859-1" 
http-equiv="content-type"> 
    <title>Admin Login</title> 
</head> 
<body> 
<big><big>Login 
Here<br> 
<br> 
</big></big> 
<form action="/var/www/cgi-bin/Login.py" name="LoginForm"><big>Administration 
Login<br> 
User Name<br> 
    <input name="UserName"><br> 
    <br> 
    <br> 
Password<br> 
    <input name="PassWord"><br> 
    </big><br> 
    <br> 
    <br> 
<input type="submit"> 
    <br> 
</form> 
&nbsp;__&nbsp;<br> 
</body> 
</html> 

和Python代碼..

#!/usr/bin/python 
import cgi 
import cgitb; cgitb.enable() 
# get the info from the html form 
form = cgi.FieldStorage() 
#set up the html stuff 
reshtml = """Content-Type: text/html\n 
<html> 
<head><title>Security Precaution</title></head> 
<body> 
""" 

print reshtml 

User = form['UserName'].value 
Pass = form['PassWord'].value 

if User == 'Myusername' and Pass == 'MyPasword': 
    print '<big><big>Welcome' 
    print 'Hello</big></big><br>' 
    print '<br>' 
else: 
    print 'Sorry, incorrect user name or password' 

print '</body>' 
print '</html>' 

的問題是,當我提交的用戶名和密碼,它只是顯示整個代碼回到了瀏覽器,而不是需要歡迎消息:(我用Fedora1 3 ..誰能告訴我哪裏出了問題?我甚至改變了文件的權限。

回答

3

很可能,您的網絡服務器未配置爲執行腳本。即使它在文件系統中被標記爲「可執行文件」,這並不一定意味着網絡服務器知道它應該執行.py文件(而不是直接爲它們提供服務)。看看這裏,如果你正在運行的Apache:http://httpd.apache.org/docs/2.0/howto/cgi.html

2
<form action="/var/www/cgi-bin/Login.py" name="LoginForm"> 

嘗試

<form action="/cgi-bin/Login.py" name="LoginForm"> 

的/ var/www是可能從您的FTP站點的路徑。 Web服務器只會查看/ var/www,因此它會自動將該部分放在那裏。