ここで何が起こっているのか途方に暮れています。チェックするユーザーによっては、必ずしも何か問題があるとは限らないからです。問題のデータベースの構造は次のとおりです。
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 の問題ですか、それとも私は盲目の馬鹿の問題ですか?