私は、php の .txt ファイルへのアクセスに基づくユーザー アカウント ログイン システムを備えた Web サイトを作成しています。私は当初、無料の Web ホスティング サービスで多くのコードをテストし、ユーザー アカウント ログイン システムが機能するようにしましたが、それを自分の個人用の Apache Web サーバーに移動しようとすると、一部の php コードの機能がうまくいかないようです。失われてしまい、その理由はわかりません。具体的には、変数 $passfile に値を返さない splfileobject() 関数に絞り込みました。これを行うために必要ないくつかのphpライブラリがありませんか? 調べてみると、php7.0 には標準の php ライブラリの一部として splfileobject() とそれに関連するその他の関数が含まれているとのことでした。
これが私のコードの一部です
<?php
$username = $_POST["username"];
$password = $_POST["password"];
$account = file('usernames.txt');
$accountfix = str_replace("\n", "", $account);
$filepoint = array_search($username, $accountfix);
if ($filepoint !== false) {
$passfile = new SplFileObject('passwords.txt', 'r+');
$passfile->seek($filepoint);
$potentialpass = str_replace("\n", "", $passfile);
// check password
if ($password === $potentialpass) {
$_SESSION["username"] = $username;
$_SESSION["password"] = $password;
$_SESSION["loggedin"] = true;
$_SESSION["filepoint"] = $filepoint;
print "Logged in succesfully!";
}
else{
print "Incorrect Password";
}
}
else {
print "Incorrect Username.";
}
?>
何らかの理由で、このようなファイルを開くと正常に動作します。
$account = file('textfiles/usernames.txt');
ただし、計算時間を短縮するために、ユーザー名ファイルと並列データを持つパスワード ファイル内の特定のポイントまで検索できるようにしたいと考えており、そのためには splfileobject を使用する必要がありました。
ありがとうございました