2012-09-03 71 views
2

我需要在Wordpress中創建一個頁面。其中我需要有三個選項卡:登錄,註冊,忘記密碼。顯然,它們將包含登錄表單,註冊表單和密碼恢復表單。我已經找到了如何在這裏創建自定義登錄表單說明:WordPress的 - 單獨登錄和註冊表單在同一頁

http://www.tutorialstag.com/custom-wordpress-login-without-using-a-plugin.html

,以及如何創建一個自定義的報名表這裏:

http://www.tutorialstag.com/create-custom-wordpress-registration-page.html

這兩個解決方案似乎對我好,所以我想使用它們。發生該問題是因爲兩個代碼都使用$ _POST發送數據,並且它們都在if($ _ POST)循環中執行某些代碼。現在,如果我將兩個代碼放在同一頁面上,並且用戶嘗試登錄,它也會觸發註冊表單的if($ _ POST)循環,反之亦然。

有沒有辦法讓我分開這兩個循環,如if($ _ POST ['login'])和if($ _ POST ['register'])或以其他方式分開?

理想情況下,我想創建一個插件,爲登錄表單,註冊表單和忘記密碼錶單添加簡碼。分離代碼並使它們在同一頁面中一起工作的最佳方式是什麼?

另外,是否有更簡單的方法來實現我所需要的?我試過尋找可能看起來相似的插件,但沒有運氣。

回答

1

是的,和你在這裏描述的幾乎一樣。

在每個提交按鈕上設置'name'屬性 - 例如

<input type="submit" name="login" value="Login" class="mybtnclass" /> 

然後解析時,檢查是否該值被設置

if(isset($_POST['login'])) : 
    // Do login 
elseif(isset($_POST['register'])) : 
    // Do registration 
elseif(isset($_POST['reset'])) : 
    // Do password reset 
endif; 

編輯:

另一種方法是讓所有的按鈕相同的「姓名」,然後測試該「值」屬性來確定哪個被按下,例如

<input type="submit" name="submit" value="Login" class="mybtnclass" /> 
<input type="submit" name="submit" value="Register" class="mybtnclass" /> 
<input type="submit" name="submit" value="Reset Password" class="mybtnclass" /> 

<?php 
if('Login'===$_POST['submit']) : 
    // Do login 
elseif('Register'===$_POST['submit']) : 
    // Do register 
elseif('Reset Password'===$_POST['submit']) : 
    // Do password reset 
endif; 
?> 
+0

標記你是一個傳奇。這工作像一個魅力。非常感謝。 –

+0

很高興我可以幫助:) – Mark

相關問題