2016-09-07 3 views
0

フォームを作成し、ユーザーが入力したデータをpython-cgiを使用してスクリプトに入れようとしていますが、このエラーメッセージが表示されます。 "Endスクリプト出力前にheaders:processname.cgi "私は様々なブログやチュートリアルに従ってきましたが、それを機能させることはできませんでした。エラー:python-cgiでhtmlフォームを送信中にヘッダーの前にスクリプト出力が終了する

私のフォームとCGIスクリプトは次のとおりです。私は私のローカルマシン上のpython3とXAMPPのサーバーを使用しています(MAC OSX)

form.html

<DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"/> 
    <title>Get name from User</title> 
    </head> 
    <body> 
    <form method="post" action="processname.cgi"> 
     Please Enter Your name: <input type="text" name="username" placeholder="e.g. John" autofocus 
    required="required"/> 
    <br> 
    <input type="submit" name="submitname" value="Submit"/> 
    </form> 
    </body> 
</html> 

そして、これは私のCGIスクリプトです:processname.cgi

#!/usr/local/bin/python3 
import cgi 
import cgitb 
cgitb.enable() 
def htmlTop(): 
    print('''Content-type:text/html\n\n 
    <!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <meta charset="utf-8"/> 
    <title>My Server Side template</title> 
    </head> 
    <body>''') 
def htmlTail(): 
    print('''</body> 
    </html>''') 
def getData(): 
    formData = cgi.FieldStorage() 
    firstname = formData.getvalue("username") 
    return firstname 
if __name__ == '__main__': 
    try: 
    htmlTop() 
    firstname = getData() 
    print("Hello {0}".format(firstname)) 
    htmlTail() 
    except: 
    cgi.print_exception() 

答えて

1

私はそれを考え出しスクリプトを実行可能にしてからサーバーを再起動する必要があります。

chmod 705 .../folders/scriptname.cgi 

は、スクリプトを実行可能にします。

関連する問題