- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同じ配列処理)
同じ配列処理でユーザー認証プログラムを作る方法
このQ&Aのポイント
- PHPファイル内にユーザー名、パスを定義していますが、外部ファイルから読み込む方法を知りたいです。
- 具体的には、CSVファイルからユーザー名とパスを読み込んで、配列として扱いたいです。
- 現在の処理だと、CSVファイルからの読み込みがうまくいっていないため、どのように修正すれば良いか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#244856
回答No.2
正しいCSV形式、つまり改行コードLFを用いて admin,pass[LF] guest,guest[LF] というように全ての行末にLFが存在している前提で。 $fp = fopen($userfile, 'r'); while ($row = fgetcsv($fp)) { $users[$row[0]] = $row[1]; } fclose($fp); fgetcsv関数を使えばシンプルに書けます。
その他の回答 (1)
- agunuz
- ベストアンサー率65% (288/438)
回答No.1
>$users[$i] = array($id, $pass); 最初にご自分が書いた形式になっていません。 $users[$id] = $pass; ですよね。 $users = array(); $lines = file($userfile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($lines as $line) { list($id, $pass) = explode(",", $line); $users[$id] = $pass; } ちなみにCSVファイルに保存するのですから、ユーザ名・パスワードに区切り記号が混入しないように注意しないといけません。タブ区切りならそういう面倒もないですが、まぁ入力チェックで英数字限定とかですかね。またパスワードはハッシュを記録するようにしてください。