好吧,我知道這是錯誤的方式,我沒有實施鹽和其他小安全提示 但現在我需要了解這裏有什麼問題,然後我可以實現其他安全功能到腳本,感謝您的幫助:) 當運行這個,腳本返回登錄錯誤,我可以理解爲什麼,我打印密碼$ _POST ['密碼'],它是相同的數據庫,但當試圖打印$ col2(密碼從數據庫中獲得)不返回任何內容。 下面是代碼:在PHP和Mysqli登錄錯誤腳本
<?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();
?>
'$ col1 && $ col2 == $ username && $ password'你在哪裏看到這種語法?事實上,您並未向我們提供有關$用戶名和$密碼的信息。你從哪裏得到它們? $ username nad $密碼發佈的值?你綁定了它們,所以它來自用戶?你如何申報? –
談到登錄腳本時,你不應該試圖從頭開始創建所有的東西。有太多可能會出錯的地方。 – Sliq