Python CGI脚本不执行

时间:2011-03-26 07:21:02

标签: python html cgi

只是用HTML文件做一个基本的python项目,我遇到了一个教程,它给出了我如何执行代码的想法,

这是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>'

问题是,当我提交用户名和密码时,它只是在浏览器上显示整个代码而不是所需的欢迎消息:(。我使用Fedora13 ..任何人都可以告诉我出了什么问题吗?我甚至更改了文件的权限。

2 个答案:

答案 0 :(得分:3)

最有可能的是,您的网络服务器未配置为执行脚本。即使它在文件系统中被标记为“可执行”,也不一定意味着网络服务器知道它应该执行.py个文件(而不仅仅是直接向它们提供服务)。如果您正在运行Apache,请查看此处:http://httpd.apache.org/docs/2.0/howto/cgi.html

答案 1 :(得分: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,因此会自动将该部分放在那里。