【发布时间】:2017-03-10 08:30:26
【问题描述】:
我刚学php,情况如下。
我有 2 个 *.php 文件。第一个称为index.php,它包含逻辑。第二个 php 文件名为 index.view.php,它包含 html 代码。
在 index.view.php 中,我在同一页面中有一个登录表单和一个注册表单。类似于 facebook.com 登陆页面,您可以在其中登录或注册新帐户。
我创建了2个表单,第一个是登录表单:
<h1>Login</h1>
<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "POST" class = "form" name = "login">
<div class="form-group">
<input type="text" name="userLogin" class = "user" placeholder="Username">
</div>
<div class="form-group">
<input type="password" name="passwordLogin" class = "password_btn" placeholder="Your password">
<i class="submit-btn1" onclick = "login.submit()"></i>
</div>
</form>
第二个是注册表单:
<h1>Register</h1>
<form action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method = "POST" class = "form" name = "register">
<div class="form-group">
<input type="text" name="userRegister" class = "usuario" placeholder="Usuario">
</div>
<div class="form-group">
<input type="password" name="passwordRegister1" class = "password_btn" placeholder="Your password">
</div>
<div class="form-group">
<input type="password" name="passwordRegister2" class = "password_btn" placeholder="Repeat password">
<i class="submit-btn2" onclick = "register.submit()"></i>
</div>
</form>
问题是我如何处理这种情况才能知道提交了哪个表单。我考虑过检查 isset($_POST('userRegister')) 以检测用户何时在注册表单中写入数据,以及检查登录表单是否已提交的相同技术。 p>
由于我开始用 php 编写代码,我不知道我展示的解决方案是否正确。或者如果我可以使用更好的解决方案。
【问题讨论】:
-
这可以正常工作,但我个人会发布到不同的脚本,以使事情分开并更易于维护。
-
一种常见的解决方案是在两个脚本中使用同名但值不同的提交输入/按钮。
-
如前所述,您可以这样做。此外,您可以使用隐藏输入来命名每个表单。但是,将它们分开总是更好的主意!
-
您正在使用
register.submit()和login.submit(),所以发出 ajax 调用或 submit() 所做的任何事情的问题是什么,发送了关于女巫表单的附加信息。您也可以使用隐藏输入。 -
将
name输入而不是表单并检查isset($_POST["login"])
标签: javascript php html forms