現在、ログイン システムを動作させるのに問題があります。その理由はわかったと思いますが、なぜそれが起こっているのか、具体的に何が原因なのかはわかりません。
データベースにハッシュ化されたパスワードが保存されています。password
列の値は次のとおりです。
18e2acd33fd3ec752c344b463d00238e35b6b77ed65941f69b9eb96471834f1e507d846071768548f8cf125d6c74ce614d477a576657983bb8620bbc49eed7de
次に、PHP でそのフィールドを単純に選択して出力すると、次のようになります。
$query = "SELECT password FROM webusers WHERE username = 'Roy'";
$update = odbc_exec($connect, $query);
$row = odbc_fetch_array($update);
print $row['PASSWORD'];
以下を出力します。
18e2acd33fd3ec752c344b463d00238e35b6b77ed65941f69b9eb96471834f1e507d846071768548f8cf125d6c74ce614d477a576657983bb8620bbc49eed7d
両方のハッシュの最後までスクロールすると、2 番目のハッシュに最後の 'e' がないことがわかります。これにより、ログイン システム全体が機能しなくなります。なぜこれが起こるのでしょうか?PHP と SQL のどちらが原因かはわかりません。
PHP 5.4.7 を使用しており、データベースは ODBC 経由で接続された 4D SQL サーバーです。
編集:のデータ型はpassword
、Text
4D のマニュアルによると、最大 2GB のデータを保持できるため、列のサイズは問題になりません。