2017-08-01 398 views
1

我已經在我的login.php文件下面的代碼:登錄與哈希密碼PHP

<?php 
session_start(); 
$error = ''; 
if (isset($_POST['submit'])) { 
    if (empty($_POST['username']) || empty($_POST['password'])) { 
     $error = "complete fields!"; 
    } else { 
      $username = $_POST['username']; 
      $password = $_POST['password']; 
      $connection = mysql_connect("localhost", "root", ""); 
      $db = mysql_select_db("simozar", $connection); 
      $query = mysql_query("select * from admin where password='$password' AND username='$username'", $connection); 
      $rows = mysql_num_rows($query); 
      if ($rows == 1) { 
       $_SESSION['login_user'] = $username; 
       header("location: admin/index.php"); 
      } else { 
       $error = "wrong user or pass."; 
      } 
      mysql_close($connection); 
     } 
} 
?> 

我沒有任何的註冊頁面,這是管理員登錄頁面,我在數據庫中手動設置的用戶名和密碼。
我試圖在PHP我的管理數據庫表編輯選項哈希密碼,我的密碼是'aminhd'和哈希通過phpmyadmin密碼哈希'* CCF10A8709AE3EF3D868CA4581B33BAF44D1AD1F'(該圖片buttom)。
如何在使用此密碼(aminhd)登錄頁面?

這IMG:https://i.stack.imgur.com/iz4xN.png

+2

哇哇,你的網站會被黑客攻擊......儘快閱讀關於sql注入的內容: –

+0

@DavidConstantine我是新的PHP開發者。什麼是好的?是PDO更好?還是MySQLi過程 – emen

+0

** [您的腳本存在SQL注入攻擊風險](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) **。瞭解[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)的[Prepared Statements](準備語句)(http://en.wikipedia.org/wiki/Prepared_statement)。即使** [轉義字符串](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)**是不安全的!使用'PDO'或'mysqli_ *'。爲了幫助,[這篇文章將有助於選擇你最好的選擇](http://php.net/manual/en/mysqlinfo.api.choosing.php)。 – GrumpyCrouton

回答

-1

更改查詢中使用PASSWORD()

$query = mysql_query("select * from admin where password= PASSWORD('$password') AND username='$username'", $connection); 

此外,停止使用mysql_ *函數。爲什麼? Read this

+0

'PASSWORD ()'與'mysql_ *'在同一頁面上。應該使用http://php.net/manual/en/ref.password.php。 – chris85

+1

此外,更重要的是,修復[SQL注入](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。我的密碼是'')或TRUE ....' –

+0

改變教學/宣傳馬虎和危險的編碼習慣。 如果您發佈的答案沒有準備好的陳述[您可能想在發佈之前考慮這一點](http://meta.stackoverflow.com/q/344703/)。 此外[更有價值的答案來自顯示OP的正確方法](https://meta.stackoverflow.com/a/290789/1011527)。 – GrumpyCrouton