0

这是我的登录脚本下面的一部分:

    $email = $_POST['email'];
$password = $_POST['password'];
$salt = "$2a$10$R.Baj0mvj5doNvtvzDjwP5$";

$crypt_pass=crypt($password,$salt);

$query = $db->prepare('SELECT * FROM Consultants WHERE email = :email');

$query->bindParam(":email",$email);

$results = $query->execute();

$total = $query->rowCount();
$row = $query->fetch();

错误:

“PHP Notice: Undefined variable: R in /Users/Sites/pages/login.php on line 6” 这是发生错误的行 - $salt = "$2a$10$R.Baj0mvj5doNvtvzDjwP5$";

4

3 回答 3

2

美元符号被解释为变量。您要么需要逃避它们:

$salt = "\$2a\$10\$R.Baj0mvj5doNvtvzDjwP5\$";

或使用单引号:

$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';

之所以选择“R”,是因为以数字开头的变量名称在 PHP 中无效。

于 2013-01-25T23:40:08.153 回答
2

使用单引号而不是双引号。使用双引号,PHP 试图插入变量名。单引号将防止这种行为。

于 2013-01-25T23:40:16.907 回答
0

因为您使用的是双引号,所以它试图解析字符串中的变量。像这样使用单引号。

$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
于 2013-01-25T23:40:35.097 回答