我的登录功能无法匹配数据库中存储的用户名和密码

采里夏尔巴人

该代码始终返回错误的用户名和密码,尽管其正确且相同的功能适用于我的管理员登录系统。它在一段时间前有效,但现在不起作用了。

function login($user,$pass,$accountType){
require('connection.php');

$result=mysqli_query($con,"select * From $accountType");
    $regex="/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/";
    if(preg_match($regex, $user)){
        if(mysqli_num_rows($result)>0){
            while($row=mysqli_fetch_assoc($result)){
                $username=$row['username'];
                $password=$row['password'];
                if($user==$username){   
                        if (password_verify($pass,$password)){                               
                            if($accountType=='student'){
                                $_SESSION['student']='$user';
                                header('Location:studentprofile.php');

                                exit();
                            }
                            elseif($accountType=='teacher'){
                                $_SESSION['student']='$user';
                                header('Location:teacherprofile.php');
                                exit();
                                }
                            elseif($accountType=='admin'){
                                header('Location:admin.html');
                                exit();
                            }
                        }
                        else
                        {
                            $_SESSION['error']="wrong password"."<br>";
                        }
                }
                else{
                    $_SESSION['error']="Wrong username "."<br>";
                }   
            }

        }
        else{
            $_SESSION['error']="No data found";
        }
    }
    else{
        $_SESSION['error']="not a valid email,";
    }

}
杰伊·布兰查德(Jay Blanchard)

注释 “我已指定varchar(20)在数据库中存储密码”

密码字段应该很大。所述password_hash()可产生一些非常冗长的文字(当前的默认是60个字符),所以使场较大,如varchar(254)text将允许所需要的长度。PHP团队正在向该方法添加更多算法,这意味着哈希可以并且将会增长。我们也不想限制用户使用自己选择的密码或密码短语的能力。最好为更改留出空间

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我正在尝试使用存储在数据库中的用户名和密码创建自定义登录页面,但无法解决此错误

我将如何匹配Java servlet中数据库的用户名和密码。JDBC和Servlet

如何在我的 java 项目中存储数据库密码和用户名?

匹配在数据库中获取的用户名和密码 - Jquery

尝试连接到 somee.com 数据库时是否使用我的登录用户名和密码?

我可以使用任何用户名和密码登录到Firebird 3数据库

我如何验证登录页面的用户名和密码是否存在于我的 websql 数据库中?

如何在Notes文档中存储JDBC服务器,数据库,用户名和密码

如果用户名和密码存储在数据库中,为什么 user.is_active 为 false?

为什么我无法检索火力地堡实时数据库的用户名和密码

如何检查用户名和密码是否与数据库值匹配

如何找到存储用户名和密码的邮件服务器的数据库?

Python / Django数据库用户名和密码?

是否可以通过了解PHP中的用户名和密码(仅)来入侵我的数据库?

如何将我的应用程序中的用户名和密码详细信息存储到我的数据库以及如何将我的应用程序与我的数据库连接?

检查电子邮件是否在数据库中,否则将用户名和密码存储在数据库中

用户名和密码不会保存在 Firebase 数据库中

如何在Jelastic JPS中获取或设置集群数据库的用户名和密码

PHP mySQL检查用户名和密码是否在数据库中

使用php的数据库中的用户名和密码

通过表单传递数据库用户名和密码,用于 Flask App 中的数据库连接

如果数据与数据库不匹配,如何抛出无效用户名或密码的错误?

如何授予不使用特定用户名和密码的用户访问数据库的权限?

为什么我需要服务器、用户名和密码才能在 C# 中创建数据库?

在Grails中,如何将数据库用户名和密码放入外部属性文件中?

如何从数据库中获取用户名和密码并传递给Spring MVC中的Method

在 PHP 中验证数据库中的用户名和密码后,如何使按钮转到特定页面

登录时如何获取用户名并将其存储到数据库

Cake php无法登录“错误的用户名和密码”