我刚刚发现isset函数不再适用于我的登录和注册表单。我很奇怪,所以我解除了我最近所做的一切,看它是不是造成了它,但没有运气。如果我删除了isset并替换为此;
if($_SERVER['REQUEST_METHOD'] == "POST"){
它有效!但是我在一个页面上有两个表单,所以我需要检查哪个表单已提交。
这是isset函数:
if (isset($_POST['submit_login'])) {
提交按钮只是让你知道它有正确的名称;
<input type="submit" name="submit_login" value="Login" class="buttonClassic"/>
注册表单的格式完全相同,但名称为submit_reg
。
形式:
<form action="<?php echo htmlentities('Login'); ?>" method="post" id="login">
<p class="p1">Already signed up? Log in</p><hr/>
<label for="email">Your email address </label><input type="email" required name="email" placeholder="Email" class="text" id="email">
<label for="password">Your password </label><input type="password" name="pass" required placeholder="Password" class="text" id="password">
<center><input type="submit" name="submit_login" value="Login" class="buttonClassic"/></center>
<div class="center-align-text">
<p class="p3"><a href="passreset.html">Forgotten your password?</a></p>
</div>
</form>
注册表格:
<form action="<?php echo htmlentities('Login'); ?>" method="post" id="register" >
<p class="p1">New to NBS? Sign up, it's free!</p><hr/>
<label for="reg_email">What's your email address? </label><input type="email" name="email" required placeholder="Email" class="text" id="reg_email">
<label for="reg_password">Choose a password </label><input type="password" required name="pass" placeholder="Password" class="text" id="reg_password">
<label for="reg_password2">Re-type password </label><input type="password" required name="pass2" placeholder="Re-type password" class="text" id="reg_password2">
<input type="checkbox" name="subscribed" value="subscribed" id="subscribed"><label for="subscribed">Yes, send me email updates from NewBorn Sounds. </label>
<br/>
<input type="checkbox" required="flag" name="terms" value="ticked" id="terms"><label for="terms">I agree to the <a href="Terms">terms & conditions</a>.</label>
<center><input type="submit" name="submit_reg" value="Sign Up" class="buttonClassic"></center>
</form>
如果您需要更多信息,请大声喊叫!
哦,我知道我可以将表单提交给外部PHP脚本,但我并不特别想这样做,因为我希望将用户输入错误输出到同一页面。我知道我可以使用ajax,我这样做,但我试图将javascript作为一个附加组件,而不是减少没有js的用户体验。
完整HTML:
<div id="login_form_wrapper">
<form action="Login" method="post" id="login" novalidate="novalidate">
<p class="p1">Already signed up? Log in</p><hr>
<label for="email">Your email address </label><input type="email" required="" name="email" placeholder="Email" class="text" id="email">
<label for="password">Your password </label><input type="password" name="pass" required="" placeholder="Password" class="text" id="password">
<center><input type="submit" name="submit_login" value="Login" class="buttonClassic"></center>
<div class="center-align-text">
<p class="p3"><a href="passreset.html">Forgotten your password?</a></p>
</div>
</form>
<form action="Login" method="post" id="register" novalidate="novalidate">
<p class="p1">New to NBS? Sign up, it's free!</p><hr>
<label for="reg_email">What's your email address? </label><input type="email" name="email" required="" placeholder="Email" class="text" id="reg_email">
<label for="reg_password">Choose a password </label><input type="password" required="" name="pass" placeholder="Password" class="text" id="reg_password">
<label for="reg_password2">Re-type password </label><input type="password" required="" name="pass2" placeholder="Re-type password" class="text" id="reg_password2">
<input type="checkbox" name="subscribed" value="subscribed" id="subscribed"><label for="subscribed">Yes, send me email updates from NewBorn Sounds. </label>
<br>
<input type="checkbox" required="flag" name="terms" value="ticked" id="terms"><label for="terms">I agree to the <a href="Terms">terms & conditions</a>.</label>
<center><input type="submit" name="submit_reg" value="Sign Up" class="buttonClassic"></center>
</form>
</div>
答案 0 :(得分:1)
也许你可以这样做:
if($_SERVER['REQUEST_METHOD'] == "POST"){
if (isset($_POST['submit_login'])) {
//do something
} else {
//do something else
}
}
答案 1 :(得分:0)
表单操作需要是有效的网址,例如“/login.php”。
复选框具有给定的值(一旦选中),或者它们根本不显示。最好是仔细检查它们:“isset($ _ POST ['mycheckbox'])&amp;&amp;'value'== $ _ POST ['mycheckbox']”。
向我们展示您用来评估表单的php。
答案 2 :(得分:0)
这是怎么回事?
<input type="submit" name="submit_reg" value="Sign Up" class="buttonClassic">
<?php
if($_POST['submit'] == 'Sign Up'){
//do something
}
?>