2017-08-29 13 views
1

私は現在、プレーンテキストでパスワードを保存しないようにMD5をテストしています。私は2つのファイルで働いている 、最初のものは、ユーザーを登録し、データベースにパスワードのMD5を挿入します。 2ファイル「は、2つの値がエコーと等しいことをテストヘッダーはISNをリダイレクトした後、iが格納されている一方のハッシュ値と入力したパスワードのハッシュ値を比較し、ユーザのログインを試みるlogin.php、 あります誰かが私にいくつかのヒントを与えることができればトンの加工は、ここにlogin.phpのための私のコードです:PHPセッション、ヘッダ、およびパスワードのハッシュ値

<?php 

    include("../config.php"); 
    session_start(); 

    if($_SERVER["REQUEST_METHOD"] == "POST") { 
     // username and password sent from form 

     $myusername = mysqli_real_escape_string($db,$_POST['username']); 
     $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

$sqlx = "SELECT passcode FROM jdashboard WHERE username = '".$myusername."'"; 
$resultx = mysqli_query($db,$sqlx); 
$rowx = mysqli_fetch_array($resultx,MYSQLI_ASSOC); 
$storedpass=$rowx['passcode']; 

$enc_password = md5($mypassword); 
/*echo $enc_password; 
echo "<br>"; 
echo $storedpass;*/ 
/* 
$compare=strcmp($string1,$string2); 
*/ 

     $sql = "SELECT id FROM jdashboard WHERE username = '$myusername' and passcode = '$mypassword'"; 

     $result = mysqli_query($db,$sql); 
     $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
     $active = $row['active']; 

     $count = mysqli_num_rows($result); 

     // If result matched $myusername and $mypassword, table row must be 1 row 



     if($count == 1) { 
$admin=0; 
     //session_register("myusername"); 
     $_SESSION['myusername'] = 'myusername'; 
$sql = "SELECT admin FROM jdashboard WHERE username = '".$myusername."'"; 
     $result = mysqli_query($db,$sql); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 



$admin= $row['admin']; 

     $_SESSION['login_user'] = $myusername; 


     if ($admin=='1'){ 

     header("location: welcome.php"); 




} 

else if ($admin=='0' && $storedpass == $enc_password){ 

header("location: https://one.potentiallead.com/dshb/usr"); 




} 
     else { 
     $error = "Your Login Name or Password is invalid"; 
     } } 
    } 
?> 

は、事前にありがとうございます!

+0

あなたデータベースパスワードを脱出します。なぜそれが悪い考えであるか考えてみてください。 – Progrock

+0

私がwelcome.phpにまっすぐ行くとどうなりますか? – Progrock

+0

こんにちは、あなたはいくつかの – Lalati

答えて

0

あなたのコードは、あなたが$mypasswordの代わりに$enc_passwordを比較する必要があり

$sql = "SELECT id FROM jdashboard WHERE username = '$myusername' and passcode = '$mypassword'"; 

ここで間違っているので、右のクエリはこれを好きなはずです。

$sql = "SELECT id FROM jdashboard WHERE username = '$myusername' and passcode = '$enc_password'"; 

とにかく、あなたはセキュリティ上の問題への二重暗号化されたパスワードとしてMD5を使用しないでください、私はあなたがBcrypt PHP Class代わり

・ホープ、このヘルプを使用できることを示唆しています。あなたはそれをハッシュする前に

+0

すごいああ、私はそのクエリには見えませんでした信じることができない、おかげでたくさんそれが直接私の問題を解決しました! – Lalati

+0

私はそれを聞いてうれしいです、あなたはあなたの問題が解決されている場合は、答えを受け入れることができますこれはStackOverflowで感謝の言葉である方法です – vietnguyen09

+1

はい、それはタイマーを持っていた、新しいユーザーは投票できませんが、考慮されています。ありがとうございます。 – Lalati

関連する問題