2024-09-30 08:29:01 发布
网友
这是我的密码:
def to_complete(request): return MobileResponseRedirect('/battle/complete/') def complete(request): do_something() return MobileResponse(html)
但这种方法不能阻止你回来
我在complete中做了一件重要的事情(比如在游戏中增加金钱)
complete
我不希望用户刷新页面或返回到父页面
我能做什么
谢谢
一个简单的想法是使用会话变量,如下所示:
def to_complete(request): if request.session.has_key("complete_pending"): return HttpResponseForbidden() request.session["complete_pending"] = True return MobileResponseRedirect('/battle/complete/') def complete(request): if not request.session.get("complete_pending", False): return HttpResponseForbidden() request.session["complete_pending"] = False do_something() return MobileResponse(html)
这种方法允许用户在to_complete和complete中只输入一次。如果希望用户再次输入,只需取消设置session变量。你知道吗
to_complete
我看到了几个选择:
你可以在做某事()后再次重定向:
def complete(request): do_something() return MobileResponseRedirect('/battle/complete_msg/') def complete_msg(request): return MobileResponse(html)
如果仍然担心(特别是如果担心用户作弊系统),您应该在服务器上设置某种标志,表明操作已经完成。很难说,如果你对你的应用程序了解得更多的话,如何才能做到这一点。一个例子是,如果用户已经做了一些动作(例如,打败一个关卡),并且记录了动作已经发生,那么这个完整的动作只能发生一次。
一个简单的想法是使用会话变量,如下所示:
这种方法允许用户在
to_complete
和complete
中只输入一次。如果希望用户再次输入,只需取消设置session变量。你知道吗我看到了几个选择:
你可以在做某事()后再次重定向:
如果仍然担心(特别是如果担心用户作弊系统),您应该在服务器上设置某种标志,表明操作已经完成。很难说,如果你对你的应用程序了解得更多的话,如何才能做到这一点。一个例子是,如果用户已经做了一些动作(例如,打败一个关卡),并且记录了动作已经发生,那么这个完整的动作只能发生一次。
相关问题 更多 >
编程相关推荐