将字符串双引号转换为单引号

时间:2016-07-14 03:25:24

标签: php string

我从数据库获取密码,并使用“”(双引号)存储在$password变量中。我想用{'(单引号)更改$password变量值。我怎么能改变这个?当我使用静态值进行测试时,$password = '$2y$10$wFgLkiJbc7MQ0aY6H7bZwehm45CFlvpSBvZmHs9m8euqPmDlP0mIK';没问题且密码有效。我的问题看起来像这个链接。

php password_hash and password_verify issues no match

如何解决$密码?

$password = $result['Password'];

这是我的代码:

$get_email = $_POST['email'];
$get_password = $_POST['password'];

$result = $conn->prepare("select * from user where Email='$get_email'");
$result->execute();

    foreach ($result as $result) {
        $id = $result['ID'];
        $password = $result['Password'];


        if (password_verify($get_password, $password)) {
            echo 'Password is valid!';
        } else {
            echo 'Invalid password.';
        }

    }

3 个答案:

答案 0 :(得分:0)

当你使用双引号时,它将被用作变量,因为你的字符串中有'$',而当你使用单引号时它将被用作char

答案 1 :(得分:0)

目前我只能向你提出一个想法。 怎么样修改一下你的mysql查询? 像

这样的东西
$conn->prepare("select * from user where Email='$get_email'" and `Password` = '$get_password');

如果此查询返回空结果,您可以显示“密码无效”。 不是很好的解决方案,但应该有效。

答案 2 :(得分:0)

我的代码遇到了同样的问题。我从数据库中检索哈希密码 ,然后使用password_verify()根据输入的密码对其进行验证。为了使代码无问题,必须使用trim() 修剪从数据库中检索的哈希密码。示例代码:

public function verifylogin() {
        //this is an array with user credentials from login form 
        $usercred = $this->input->post();

        //this will check in user model and return password, etc. where name is equal to entered name
        $userdb = $this->User_model->check($usercred);
        $userdbpass = trim($userdb[0]['pass']); //trim is very critical !!!

       //now we check if the text pass is equal to hashed one
        if (password_verify($usercred['password'], $userdbpass)) {
            $sess_data = array('login' => TRUE, 'username' => $usercred['username'], 'type' => $usercred['type']);
            $this->session->set_userdata($sess_data);
            redirect(base_url());
        } else {
            $this->session->set_flashdata('msg', 'Wrong Username or Password!');
            //If no session, redirect to login page
            redirect(base_url() . 'users/login');
        }
    }