1

ここで何が起こっているのか途方に暮れています。チェックするユーザーによっては、必ずしも何か問題があるとは限らないからです。問題のデータベースの構造は次のとおりです。

userID       password      salt
VARCHAR(7)   VARCHAR(64)   VARCHAR(64)

注:パスワードソルトは sha256 ハッシュです。

関連するコード (すべてのデータは SSL 経由で送信されます):

$pass     = $_POST['pass'];
$user     = $_POST['user'];

$query    = 'SELECT password, salt FROM `Passwords` WHERE userID="'.$user.'";';
$result   = mysql_query($query);

$passHash = mysql_result($result,0,"password");
$salt     = mysql_result($result,0,"salt");

$pass     = hash("sha256",$salt.$pass);

if($pass==$passHash) {/*Allow Login*/}

すべてのユーザーがパスワードを選択しているわけではありません。また、私の組織ではこれまで、適切なパスワードの代わりに郵便番号 (私は知っています...) を使用していました。 . $saltが何らかの理由で空白を返すため、ログインできないパスワードを持つ (一部の) メンバーです (ただし、MySQL エラーも発生していません)。デバッグ試行の実行中に phpMyAdmin を介してデータベースをチェックしましたが、明らかなエラーはありません。

一部のユーザーでは空白になり、他のユーザーでは空白にならない理由は何ですか? これは PHP の問題ですか、MySQL の問題ですか、それとも私は盲目の馬鹿の問題ですか?

4

0 に答える 0