好的,我知道这是错误的方法,我还没有实现 salt 和其他小的安全提示,但现在我需要了解这里的问题是什么,然后我可以为脚本实现其他安全功能,感谢您的帮助 :) 运行时这个,脚本返回登录错误,我可以理解为什么,我打印密码 $_POST['password'] 并且它在数据库上是相同的,但是当尝试打印 $col2(从数据库获取密码)时什么都不返回。这是代码:
<?php
$mysqli = new mysqli("localhost", "root", "*******", "test");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username=? AND password=?")) {
$stmt->bind_param("ss" , $username, $password);
$stmt->execute();
/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);
$stmt->store_result();
/* fetch values */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}
if($col1 && $col2 == $username && $password){
$_SESSION['Admin']; //test - not to be implemented
session_start(); //Test - not to be implemented
header("location index2.php");
}else{echo "Login Error";}
/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();
?>