Сценарий Python CGI не выполняется - PullRequest
2 голосов
/ 26 марта 2011

Просто выполняя базовый проект на Python с HTML-файлом, я наткнулся на учебник, который дал представление о том, как я могу выполнить код,

вот код 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>

и код питона ..

#!/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 ]

3 голосов
/ 26 марта 2011

Скорее всего, ваш веб-сервер не настроен на выполнение скрипта.Даже если он помечен как «исполняемый» в файловой системе, это не обязательно означает, что веб-сервер знает, что он должен выполнять .py файлы (а не просто обслуживать их «прямо»).Посмотрите здесь, если вы используете Apache: http://httpd.apache.org/docs/2.0/howto/cgi.html

2 голосов
/ 26 марта 2011
<form action="/var/www/cgi-bin/Login.py" name="LoginForm">

Попробуйте

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

/ var / www - это, вероятно, путь от вашего ftp-сайта. Веб-сервер будет искать только внутри / var / www, поэтому он автоматически размещает эту часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...