我遇到了一个我根本想不通的问题。这是两部分。
我有一个启动页面,要求用户输入Beta代码。如果代码有效,则会将它们重定向到注册页面。如果他们正确注册,他们将在Django中进行身份验证,并重定向到该网站的主页。除了启动和注册外,网站中的所有页面都有@login_required装饰器。
现在奇怪的是,我的一些测试用户声称他们已登录,然后随机重定向到启动页面。我无法重现,我的其他几个测试人员也无法重现该错误。我根本不明白。
但更奇怪的是,我无法在IE8中成功验证用户身份。它只是将我重新引导回到IE8中的启动页面,即使相同的代码在我的其他浏览器上工作。但等等,还有更多,我今天在朋友的电脑上测试了它,IE8在他们的电脑上工作。
到底是什么,我很沮丧。关于我从哪里开始的一些基本想法?
编辑:
这是我的启动页面视图:
def splash(request):
error=''
#request.session.set_test_cookie()
if request.method=="POST":
#if request.session.test_cookie_worked():
# request.session.delete_test_cookie()
#else:
# cookie_error="You must enable cookies in your browser to use our login system. Our cookies will not track your behavior outside this site or do anything else malicious"
# return render_to_response("website/splash.html", {'cookie_error':cookie_error}, context_instance=RequestContext(request))
if request.POST.get('email_list',''):
beta_testform=Beta_TestForm(request.POST)
if beta_testform.is_valid():
beta=beta_testform.save()
return HttpResponseRedirect('/splash/?mls=True')
else:
email_error="Please enter a valid email address"
return render_to_response("website/splash.html", {'email_error':email_error},context_instance=RequestContext(request))
if request.POST.get('code'):
hardcode='codehere'
code=request.POST.get('code','')
if hardcode==code:
request.session['beta']=True
return HttpResponseRedirect('/splash/register/')
return HttpResponseRedirect('/')
else:
beta_error='Please enter a valid Beta code'
return render_to_response("website/splash.html", {'beta_error':beta_error}, context_instance=RequestContext(request))
这是我开始的另一个线程的链接(没有得到答复)。它包含我的注册页面视图
https://stackoverflow.com/questions/5758598/decorator-or-session-fail-bug-only-occurs-for-of-users
更新......显然,这种断断续续的会议破坏对其他人来说也是一个问题。 Django session intermittently disappears just after login