0

ユーザーが入力した回答を記録し、テストを採点するテストシステムがあります。完了すると、回答とユーザーが達成したスコアの読みやすい表が作成されます。そのファイルを記録してログファイルに入れたい。

そこで、ユーザーのユーザー名を使用してファイルを設定し、すべてのテスト結果をそのファイルに記録します。問題は、これらのファイルが一般に公開されていることです。セッションIDをチェックし、アクセスを許可または許可しないログインシステムがありますが、これらの新しく生成されたファイルにコードを取得できません。

では、どうすればこれを行うことができますか?このファイルを使用.htaccessしてフォルダーへのアクセスをブロックしましたが、より流動的な解決策を望んでいました。

PHPを使用して、新しく作成されたファイルにPHPコードを動的に書き込むことは可能ですか?(したがって、自動生成された各ログファイルにログインチェックを自動生成します)

よろしくお願いします。

4

4 に答える 4

1

Webルートの外にファイルを保存します。外部public_html(またはWebルートが何であれ)はWebから完全にアクセスできませんが、たとえば、ログインしていることがわかると、PHPファイルからアクセスできます。

于 2012-10-22T21:27:51.187 に答える
0

PHPを使用して、新しく作成されたファイルにPHPコードを動的に書き込むことは可能ですか?(したがって、自動生成された各ログファイルにログインチェックを自動生成します)

はい、そうです。ログインチェックとfile_get_contentsだけを含むテンプレートファイルを作成し、それをファイルの先頭に書き込むことができます。次に、__ hallt_compiler()を使用して、PHPがファイルの残りの部分を解釈しないようにします。次に、クライアントからの読み取りを開始し、それを__COMPILER_HALT_OFFSET__クライアントにエコーすることができます。

使用するよりも簡単なソリューションが必要な場合は__halt_compiler()、セッションチェック後に結果をユーザーにエコーするphpファイルを作成するだけです。

さらに良いことに、すべての結果をデータベースに挿入できます。次に、ユーザー名を確認し、結果を取得して、すべてをユーザーに出力する1つのページが必要です。

于 2012-10-22T21:31:38.410 に答える
0

テーブルファイルを作成する前に、そのファイルに簡単な追加を行って、PHPセッションチェックコードのテーブルコードを挿入することもできます。これは、PHPファイル書き込み関数を使用して行うことができます。

PHPセッションチェックコードは一定であるため、このアプローチははるかに簡単です。

于 2012-10-22T21:34:53.463 に答える
0

a) サイトのドキュメント ルートの外にファイルを保存して、URL 経由で直接アクセスできないようにします。

b) これらのファイルにアクセスするためのゲートウェイとなる単一の PHP スクリプトを用意します。コードは漠然と次のようになります

<?php

$fileID = $_GET['id'];

if (user_is_allowed_access($fileID)) {
    send_file_to_user($fileID);
} else {
    die("go away");
}

アクセス/許可のチェック項目を解決したら、ファイルの実際の送信は文字通り次のように簡単になります。readfile('/path/to/file/on/server')

于 2012-10-22T21:46:31.673 に答える