PythonCGI实现用户注册和登录功能
发布时间:2023-12-19 02:52:45
使用Python CGI(公共网关接口)可以实现简单的用户注册和登录功能。CGI是一种协议,用于Web服务器在请求时通过调用脚本来显示动态内容。下面是实现用户注册和登录功能的示例代码:
#!/usr/bin/env python
import cgi
import cgitb
import hashlib
# 开启CGI错误日志,方便调试
cgitb.enable()
# 创建注册页面的HTML表单
def create_register_form():
print("Content-type: text/html
")
print("<html>")
print("<head>")
print("<title>User Registration</title>")
print("</head>")
print("<body>")
print("<h1>User Registration</h1>")
print("<form action=\"register.py\" method=\"post\">")
print("Username: <input type=\"text\" name=\"username\"><br>")
print("Password: <input type=\"password\" name=\"password\"><br>")
print("<input type=\"submit\" value=\"Register\">")
print("</form>")
print("</body>")
print("</html>")
# 处理注册请求
def handle_register():
form = cgi.FieldStorage()
username = form.getvalue("username")
password = form.getvalue("password")
# 对密码进行哈希加密
hashed_password = hashlib.md5(password.encode()).hexdigest()
# 将用户名和哈希密码保存到数据库或文件中
# 注意:这里只是示例,实际应用中应使用数据库来存储用户信息
# 返回注册成功页面
print("Content-type: text/html
")
print("<html>")
print("<head>")
print("<title>Registration Success</title>")
print("</head>")
print("<body>")
print("<h1>Registration Success</h1>")
print("<p>Username: " + username + "</p>")
print("<p>Password: " + password + "</p>")
print("</body>")
print("</html>")
# 创建登录页面的HTML表单
def create_login_form():
print("Content-type: text/html
")
print("<html>")
print("<head>")
print("<title>User Login</title>")
print("</head>")
print("<body>")
print("<h1>User Login</h1>")
print("<form action=\"login.py\" method=\"post\">")
print("Username: <input type=\"text\" name=\"username\"><br>")
print("Password: <input type=\"password\" name=\"password\"><br>")
print("<input type=\"submit\" value=\"Login\">")
print("</form>")
print("</body>")
print("</html>")
# 处理登录请求
def handle_login():
form = cgi.FieldStorage()
username = form.getvalue("username")
password = form.getvalue("password")
# 对密码进行哈希加密
hashed_password = hashlib.md5(password.encode()).hexdigest()
# 从数据库或文件中获取保存的用户名和哈希密码
# 注意:这里只是示例,实际应用中应使用数据库来存储用户信息
# 比较输入的用户名和密码与保存的用户名和哈希密码是否匹配
# 如果匹配则登录成功,否则登录失败并返回登录失败页面
# 返回登录成功页面
print("Content-type: text/html
")
print("<html>")
print("<head>")
print("<title>Login Success</title>")
print("</head>")
print("<body>")
print("<h1>Login Success</h1>")
print("<p>Username: " + username + "</p>")
print("<p>Password: " + password + "</p>")
print("</body>")
print("</html>")
# 获取当前CGI脚本的路径与文件名
script_name = os.path.basename(__file__)
# 通过判断CGI参数来决定执行注册页面还是登录页面
if script_name == "register.py":
create_register_form()
elif script_name == "login.py":
create_login_form()
# 获取CGI请求方法(GET或POST)来决定处理注册请求还是登录请求
if os.environ['REQUEST_METHOD'] == 'POST':
if script_name == "register.py":
handle_register()
elif script_name == "login.py":
handle_login()
要使用这个示例,首先在Web服务器中配置Python CGI。然后,在服务器上创建一个目录,将这个代码保存为register.py和login.py。访问http://your_server/register.py将显示注册页面,访问http://your_server/login.py将显示登录页面。通过填写表单并提交,您将能够注册新用户或登录已注册用户。
请注意,这个示例只是一个基本的实现,留下了一些安全和实际应用层面的考虑。
希望这个示例能帮助您理解如何使用Python CGI实现用户注册和登录功能。
