幾行代碼防止表單重復提交
- 威海Web網(wǎng)站開發(fā) 威海ASP
- 1282
在服務器端可以通過以下幾行代碼來防止表單重復提交: 1. 在表單提交時,生成一個唯一的 Token,并將其存儲到服務器的 Session 或者緩存中。 2. 將這個 Token 通過隱藏域的形式插入到表單中,并在表單提交時一同提交給服務器。 3. 在服務器端接收到表單提交請求時,先從 Session 或者緩存中獲取之前存儲的 Token,并與表單提交的 Token 進行比較。 4. 如果兩者匹配,則說明是第一次提交,接著處理表單提交的數(shù)據(jù),并在處理完之后,刪除之前存儲的 Token。 5. 如果兩者不匹配,則說明表單已經(jīng)重復提交,直接返回錯誤提示。 以下是一個使用 Python Flask 框架的例子: ```python from flask import Flask, render_template, request, session app = Flask(__name__) app.secret_key = "your_secret_key" @app.route("/submit_form", methods=["POST"]) def submit_form(): # 獲取之前存儲的 Token stored_token = session.pop("token", None) # 獲取表單提交的 Token submitted_token = request.form.get("token", None) if stored_token and stored_token == submitted_token: # 處理表單提交的數(shù)據(jù) # ... return "表單提交成功" else: return "表單已重復提交" @app.route("/") def index(): # 生成并存儲 Token token = generate_token() session["token"] = token return render_template("form.html", token=token) def generate_token(): # 生成唯一的 Token,例如使用 UUID import uuid return str(uuid.uuid4()) ``` 在上面的例子中,我們使用 Flask 的 `session` 來存儲 Token,`generate_token()` 函數(shù)用于生成唯一的 Token。在模板中,我們使用隱藏域?qū)?Token 插入到表單中。 注意:上述代碼僅是一個例子,實際防止表單重復提交的方法可能因不同的框架或語言而有所不同。