2012-09-03 70 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

相关问题