点击表单按钮触发PHP登录验证失效问题求助
搞定表单登录按钮无法触发验证的问题
嘿,我看了你的代码,发现登录按钮点击后没反应、没法验证账号密码的问题,主要是几个小细节没处理对,这就帮你梳理清楚:
1. 按钮类型不对,根本没触发表单提交
你现在的登录按钮用的是type="button",这种按钮只是个普通的点击按钮,默认不会触发表单的提交动作——也就是说,你点了它,表单根本没把数据发出去,login.php里的验证代码自然不会执行。
另外,login.php里判断的是isset($_POST['Loginbtn']),但你的按钮只有id="Loginbtn",没有name属性,就算表单提交了,这个判断也会返回false。
修复方案:把按钮改成提交类型,加上对应的name属性:
<button type="submit" id="Loginbtn" name="Loginbtn"> logIn </button>
2. 跳转后记得加exit,避免后续代码执行
在login.php里的header('Location: MainPage.php');后面,一定要加上exit;或者die();,不然浏览器跳转后,服务器可能还会继续执行后面的代码,容易出问题:
header('Location: MainPage.php'); exit;
3. 错误信息要显示到页面上
你在login.php里定义了$error变量,但signIn.php的HTML里根本没把这个错误信息展示出来——用户输错账号密码的时候,看不到任何提示,会以为功能还是坏的。
修复方案:在表单上方加上错误提示的代码:
<?php if(isset($error)) { echo "<p style='color:red;'>$error</p>"; } ?>
4. 补全HTML语法小错误
我还发现你HTML里的label标签id没加引号(比如id=usernameError),还有最后一个div没闭合,这些小的语法错误也可能影响页面功能,记得补上:
<label id="usernameError"></label> <label id="passError"></label> <!-- 表单外的div要闭合 --> </div>
修改后的完整代码参考
signIn.php
<?php include('login.php'); // 引入登录验证脚本 if(isset($_SESSION['login_user'])){ header("location: home.php"); exit; // 跳转后停止执行 } ?> <!DOCTYPE html> <html> <body> <div> <div id="rectangle"></div> <!-- 显示错误信息 --> <?php if(isset($error)) { echo "<p style='color:red;'>$error</p>"; } ?> <form id="Form01" name="myForm2" action="" method="post"> <p id="usern01"> user name</p> <input type="text" name="userName" id="username" > <label id="usernameError"></label> <p id="password01">password </p> <input type="password" name="password1" id="password"> <label id="passError"></label> <br> <button type="submit" id="Loginbtn" name="Loginbtn"> logIn </button> </form> </div> </body> </html>
login.php
<?php session_start(); if(isset($_POST['Loginbtn'])){ $una=$_POST['userName']; $pass=$_POST['password1']; if($una=='Admin'&&$pass=='Admin'){ $_SESSION['user']=$una; header('Location: MainPage.php'); exit; // 跳转后停止执行 } else { $error = "Username or Password is invalid"; } } ?>
总结
核心问题就是按钮没设置成提交类型,也没加对应的name属性,导致表单根本没提交,验证代码没机会跑。改完这些,再加上错误提示和跳转后的exit,你的登录功能应该就能正常工作啦!
内容的提问来源于stack exchange,提问作者reeena11
相关产品推荐
相关产品推荐

