我知道這已被問過,但我似乎無法修復我的代碼。 我需要的是運行一些php代碼來查詢mysql使用mysqli爲選擇語句來檢索我的bcrypt散列通過,所以我可以比較用戶輸入和用戶散列密碼。注意:我還沒有將mysql_real_escape_string添加到我的$ POST變量中。如何使用mysqli在php變量中存儲mysql select語句
我已經改變了這個代碼一千次仍不能得到它。 我甚至使用num_row 和printf($ row ['pass'])將一個簡單的查詢腳本複製並粘貼到一個新文件中;使用回聲等.....我用過取數組ive嘗試幾乎所有我已經通過php的所有php的php.net w3c.com等等是我的系統壞了? mysqli是否有bug?沒有我不想要切換到PDO我不會停止,直到這個是固定的,當不再有SQL注入vulns 繼承人我的代碼:
<?php
$conn = new mysqli('localhost', 'root', '', 'social');
if (mysqli_connect_errno())
{
exit("connection failed" . mysqli_connect_error());
}
else
{
echo "connection established";
}
$db=mysqli_select_db($conn,'social');
if ($_POST && isset($_POST['submit'], $_POST['password'], $_POST['email']))
{
$pass = ($_POST["password"]);
$email =($_POST["email"]);
$bcrypt = password_hash($pass, PASSWORD_BCRYPT, array('cost' => 12));
}
$query = "SELECT `pass` FROM `social` WHERE `email` = '[email protected]'";
$fetcher = mysqli_fetch_assoc($query);
echo $fetcher;
if ($conn->query($fetcher) === TRUE)
{
echo "query has gone through now we need to store the hash<br /> for comparison";
}
else
{
echo "error did not retrieve hash info";
}
你設置了很多變數,但不使用它們的查詢後,從獲取數據庫中的值。目前還不清楚你的腳本正在做什麼。這顯然是一個登錄腳本,但一切都是硬編碼,你實際上並沒有做任何驗證 – Machavity
不驗證,但我只是關心將MySQL的選擇語句存儲到PHP變量,所以我可以從數據庫中使用哈希使用bcrypt驗證類似於php.net – nate35795
另外,沒有使用的變量集n僅僅是因爲我已經在這兩天了。你應該看到所有已註銷的代碼,我刪除befor發佈這個笑聲... – nate35795