5

始める前に、これは課題です。私は助けの手の後にいくつかのガイダンスがあります:)

私は、ユーザーが登録、ログイン、およびアクティビティの予約ができるジムのメンバーシップ Web サイトを開発しています。

アクティビティ予約システム以外はすべて機能しており、それについてのガイダンスが必要です。各アクティビティ名、時間、合計参加人数のアクティビティ ログを含む単一の txt ファイルがあります。誰が正確に参加しているかの各活動行の最後に追加したいと思います。したがって、ユーザーがアクティビティを予約できるようになり、ユーザー名がアクティビティに追加されます。

これは、現在の activity.txt ファイルの印刷方法とまったく同じです (右端の [ブック] ボタン以外に.

NumberOne       3       Wednesday 8am       (BOOK)
NumberTwo       7       Thursday 10am       (BOOK)
NumberThree     20      Monday 1pm          (BOOK)
NumberFour      15      Tuesday 5pm         (BOOK)

基本的に、ガイドが必要なのは「予約」ボタンです。「予約」ボタンが押されると、ユーザーがアクティビティに予約されます。

これは私の activity.txt ファイルが現在どのように見えるかです:

NumberOne,3,Wednesday 8am
NumberTwo,7,Thursday 10am
NumberThree,20,Monday 1pm
NumberFour,15,Tuesday 5pm

そして、これは私が現在持っているアクティビティを印刷しているコードです:

function bookActivity()
{
 $fileContentsArray = file("activity.txt");
    echo "<table>";
    foreach($fileContentsArray as $one_persons_data)
{
  echo '<tr>';
  $splitted = preg_split('/,/', $one_persons_data);
  foreach ($splitted as $one) 
  {
    echo "<td>$one</td>";
  }
  echo '</tr>';
}
echo "</table>";
}

以下は、必要に応じて私の users.txt ファイルです。すべてのパスワードは MD5 に保存されます

jiten:3fc0a7acf087f549ac2b266baf94b8b1
jb:3fc0a7acf087f549ac2b266baf94b8b1
test:bed128365216c019988915ed3add75fb
joeBlogg:bed128365216c019988915ed3add75fb
userX:bed128365216c019988915ed3add75fb
userY:bed128365216c019988915ed3add75fb

すべてのヘルプは大歓迎です。これを行う方法について非常に混乱しています。

4

2 に答える 2

2

大まかなガイドラインは次のとおりです (宿題なので詳細には触れません)。テキスト ファイル以外のものは使用できませんが、必要な数だけ作成/削除できると仮定します。 .

  1. file(...)適切なフラグを設定して使用して、アクティビティ txt ファイルを解析します
  2. キーがアクティビティの「ID」(numberOne、numberTwo など) であり、値がアクティビティの詳細を含む別の配列である配列を作成します。ここが便利かもしれませんexplode()
  3. アクティビティごとに専用のファイルを作成します (もちろん、まだ存在しない場合)。このファイルには、アクティビティを予約した登録ユーザーの名前が含まれます。このファイルには、1 行に 1 つの名前を書くことをお勧めします。
  4. 誰かが「アクティビティの予約」ボタンを押したら、次の手順を実行する必要があります。

    • 要求された活動ファイルが存在するかどうかを確認してください。そうでない場合は、空のものを作成します。
    • 予約済みユーザーの現在の数をカウントし、許可されている最大数と比較します
    • 少ない場合は新しいユーザーをファイルに追加し、それ以外の場合は予約を拒否します
  5. 予約済みユーザーのリストを表示するには、各アクティビティ ファイルからファイルの内容を読み取るだけです。implode()今回は役に立つかもしれません。

これが正しい軌道を見つけるのに役立つことを願っています。最後の注意として、テキスト ファイルはこれを行うように設計されていません。小さなデータベースは使いやすく、学ぶのが楽しく、将来に役立ちます。

参考文献:

于 2013-07-30T07:39:56.917 に答える
1

いくつかのこと:

  1. これはログのようには聞こえません。ファイルベースのデータベースのように聞こえます。
  2. 許可されている場合は、(.txt ではなく) .csv ファイルを使用し、fgetcsv()を使用して解析します。
  3. それはあなたのデータベースなので、それに書き込む必要があります。そのためにfputcsv()を使用できます。

(FWIW、あなたの.txtファイルはすでにcsvです。あなたはそれをそのように扱っていません。)

特定の質問ごとに:「予約」をクリックすると、現在のユーザーをそのコースに追加するスクリプトにコース名を渡すだけで済みます(まだ登録していない場合)。POST (HTML フォーム) またはより簡単に GET (リンクとクエリ パラメーター) を使用してコース名を渡すことができます。

リンク (GET) を使用すると、次のようになります。

    $bookingUrl = "register.php?courseName=".urlencode($courseName);

フォーム (POST) を使用すると、次のようになります。

    <form action="register.php" method="POST">
        <input type="hidden" value="<?= $courseName; ?>" />
        <input type="submit" value="Book" />
    </form>

別の回答では、コースごとの登録を追跡するために個別のファイルを使用することが言及されていましたが、それは必要ではないと思います。1つだけ使用してください。実際に何を追跡しているのかを考えると役に立ちます。

  1. 利用可能なコース、「courses.txt」:コース名、コース時間(取得済み)
  2. ユーザー、「users.txt」: ユーザー名、パスワード (取得済み)
  3. 登録、「registrations.txt」: ユーザー名、コース名 (わかりません)
于 2013-07-30T07:50:35.860 に答える