这是我的登录脚本的以下部分:
$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注意:未定义的变量:第6行的/Users/Sites/pages/login.php中的R”这是发生错误的行 - $ salt =“$ 2a $ 10 $ R.Baj0mvj5doNvtvzDjwP5 $”;
答案 0 :(得分:2)
美元符号被解释为变数。你要么逃脱它们:
$salt = "\$2a\$10\$R.Baj0mvj5doNvtvzDjwP5\$";
或使用单引号:
$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
“R”被挑出的原因是以数字开头的变量名称在PHP中无效。
答案 1 :(得分:2)
使用单引号而不是双引号。使用双引号,PHP正在尝试插入变量名称。单引号将阻止此行为。
答案 2 :(得分:0)
因为你使用的是双引号,所以它试图解析字符串中的变量。使用这样的单引号。
$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';