PHP浮动登录表单输入正确账号密码仍无法登录问题求助
问题原因及修复方案
- 提交按钮缺少name属性,导致后端判断失效
你的login.inc.php第一行判断if(isset($_POST["submit"])),但logintest.php里的提交按钮<input type="submit" value="Login">没有加name="submit",后端永远接收不到submit参数,每次提交都会直接跳回登录页,不会走登录逻辑。
修复:把提交按钮代码改成<input type="submit" name="submit" value="Login"> - 表单字段名和后端接收参数不匹配
登录表单里的用户名字段name="name",但login.inc.php里取用户名的代码是$username = $_POST["uid"],参数名完全对不上,就算过了submit判断也取不到用户名,会触发空输入或者登录错误。
修复:要么把表单里的用户名input改成<input type="text" name="uid" required>,要么把login.inc.php里的取值代码改成$username = $_POST["name"],保证前后端参数名一致即可。 - 缺少session初始化
你在loginuser函数里才调用session_start(),但header.php里判断isset($_SESSION["useruid"])的时候没有提前启动session,就算登录成功,前端也读不到session值,还是会显示登录按钮,看起来就像没登录成功一样。
修复:在所有用到$_SESSION的页面(header.php、logintest.php、login.inc.php)的最顶部,PHP代码第一行就加<?php session_start(); ?> - header.php中注册按钮的JS代码引号冲突
注册按钮的onclick代码onclick='document.location='signup.php' '里里外外都用了单引号,语法错误,点击会没反应,属于隐藏bug。
修复:改成onclick="document.location='signup.php'"或者转义内部单引号onclick='document.location=\'signup.php\''
全部修改完成后重新测试即可正常完成登录流程。
内容的提问来源于stack exchange,提问作者Ifran Saad Omee
相关产品推荐
相关产品推荐

