2010-05-21 64 views
0

我想要創建一個用戶註冊過程,它需要兩個不同的表單(第一個表單)用於填充數據,另一個表單(第二個表單)用於顯示填充的數據作爲總結(在實際保存數據之前),那麼用戶可以查看他/她已經填滿了什麼......我的問題是如何將第一個表單的數據傳遞給第二個數據..我已經使用了基本的Django表單操作機制,通過使用Django模板標籤的表單字段值到下一個形式..Django |傳遞表單值

if request.method == 'POST': 
    form = Users(request.POST) 
    if form.is_valid(): 
     cd = form.cleaned_data 
     try: 
      name = cd['fullName'] 
      email = cd['emailAdd'] 
      password1 = cd['password'] 
      password2 = cd['password2'] 
      phoneNumber = cd['phoneNumber'] 
      return render_to_response('signup2.html', {'name': name, 'email': email, 'password1': password1, 'password2': password2, 'phone': phone, 'pt': phoneType}) 
     except Exception, ex: 
      return HttpResponse("Error %s" % str(ex)) 

,並從我只是顯示在使用標籤,也爲了使用隱藏域與價值觀提交表單,像那些字段值第二這個:

<label for="">Email:</label> {{ email }} <input type="hidden" id="" name="email" class="width250" value="{{ email }}" readonly /> 

它可以很好地從出來的樣子,但真正的問題是,如果有人查看HTML源,他可以簡單地得到密碼甚至黑客可以通過這個獲得輕鬆。那麼我該如何避免這個問題?我不想使用Django會話,因爲這只是一個簡單的註冊過程,不涉及其他交互。

謝謝。

回答

1

將密碼放入會話中。在密碼框中顯示一個「奇怪的」默認值,並檢查它是否被更改。

0

我不確定你爲什麼不想使用會話。就用戶而言,則不會看到它或與其進行交互。如果安裝了會話中間件,它將處於活動狀態。

+0

即使我使用會話字段值應該在那裏爲了將其保存到數據庫。 – Switch 2010-05-22 10:31:07

0

您可以在用戶會話中保存密碼,並且不要在表格中打印它。如果用戶之後想要更改密碼(這在註冊過程中非常罕見,請承認)。您可以添加一個鏈接「返回步驟1更改我的密碼」。

TL; DR:在我看來,如果用戶已經驗證了表單,它不會在第二步更改密碼,所以你不需要顯示它的字段。