teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

修正依頼者への対応

2020/06/07 11:05

投稿

Noisman
Noisman

スコア14

title CHANGED
File without changes
body CHANGED
@@ -95,4 +95,60 @@
95
95
  - .htaccess には```AddHandler cgi-script .py```を追加しましたが、結果は変わりませんでした。
96
96
  - ファイル名を .pyから .cgiに変更してみましたが、結果は変わりませんでした。
97
97
 
98
- 以上です。原因の究明に少し行き詰まってしまったので、悪さをしていそうな部分や他に試した方がいいことなどありましたら是非ご教授ください。よろしくお願いします。
98
+ 以上です。原因の究明に少し行き詰まってしまったので、悪さをしていそうな部分や他に試した方がいいことなどありましたら是非ご教授ください。よろしくお願いします。
99
+
100
+
101
+ ## 追記
102
+ 上に記載されている```login_form.py```も表示できていますが、他には```index.py```も表示されるので、こちらを追記しておきます。
103
+
104
+ ```python
105
+ #!/usr/bin/env python3
106
+ #encoding:UTF-8
107
+
108
+ def check_cookie(cookie):
109
+ if 'user' in cookie:
110
+ str = '''
111
+ <h2>Welcome {0}!</h2>
112
+ <a href='./hogehoge.py'>hogehoge</a>
113
+ '''.format(cookie['user'].value)
114
+ else:
115
+ str = '''
116
+ <a href='./login_form.py'>Sign In!</a>
117
+ <a href='./create_account.py'>Sign Up!</a>
118
+ '''
119
+ return str
120
+
121
+
122
+ import cgi
123
+ import cgitb
124
+ import textwrap
125
+ from http import cookies
126
+ import os
127
+ import io,sys
128
+ # UnicodeEncodeErrorを防ぐ
129
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
130
+ # クッキーの取得
131
+ cookie = cookies.SimpleCookie(os.environ.get("HTTP_COOKIE",""))
132
+
133
+ cgitb.enable()
134
+ # クッキーが生成されていたらuserとして遷移先のページでもクッキーを渡し続ける処理
135
+ if 'user' in cookie:
136
+ user = cookie['user'].value
137
+ print("Set-Cookie: user="+ user)
138
+ print("Content-Type: text/html; charset=UTF-8\n\n")
139
+
140
+ html = '''
141
+ <!DOCTYPE html>
142
+ <html lang = "ja">
143
+ <head>
144
+ <title>hogehoge</title>
145
+ </head>
146
+ <body>
147
+ <h1>hoge</h1>
148
+ {get}
149
+ </body>
150
+ </html>
151
+ '''.format(get = check_cookie(cookie)).strip()
152
+
153
+ print(html)
154
+ ```