5

ファイルのリストを含むテーブルを含むページを持つ Web サイトを Apache と PHP で改善する予定です。私の目標は、特定の主観的な基準に基づいて、ユーザーがこれらのファイルの 1 つを「重要な」ファイルとして設定できるようにすることです。そのために、最も「重要な」ファイルに関する情報を何らかの方法で保存し、データベースもファイルも使用できないという制限 (スーパーバイザーによる制限) を行いたいと考えています。

私の質問は次のとおりです。

  • 出来ますか?
  • これどうやってするの?

すでにこのサイトで検索を行いましたが、答えが見つかりませんでした。

編集:ところで、最後に XML ファイルを使用して問題を解決しました。みんなに感謝します。

4

5 に答える 5

4

これらの基準がサーバー側ではなくクライアント側であると仮定すると、それらがサーバー側であり、すべてのユーザーにとって 1 つの「重要な」ファイルであると想定されている場合、ストレージなしでこれを行う方法はありません。

あなたのソリューションに対する想定される答えは localStorage() です...

これは Javascript に依存しており、完全な解決策ではありませんが、HTML5 の localStorageを使用すると、ユーザーのコンピューターに設定を保存できます。

まず、localStorage() のサポートを検出します。

if (Modernizr.localstorage) { // with Modernizr
if (typeof(localStorage) != 'undefined' ) { // Without Modernizr

次に、サポートされている場合はパラメーターを設定します。

localStorage.setItem("somePreference", "Some Value");

ユーザーがローカルストレージをクリアしていない限り、後でそれを取得します。

var somePreference = localStorage.getItem("somePreference");

クリアしたいときは、次を使用してください:

localStorage.removeItem("somePreference");

サポートされていない (古い) ブラウザーを使用している場合は、フラッシュ LSO を悪用するローカル ストレージ ハックを使用できますが、それらは明らかに理想的ではありません。

セッションやクッキーはどうですか?

これらは両方とも、意図的に一時的な保管形態です。Flash LSO でさえ、長期保存には Cookie よりも優れています。

制約は文字通り悪い慣行を助長しています...

これらのオプションはすべてブラウザ側です。ユーザーが別の PC に移動すると、ログインに対して設定を保存できるデータベースを利用した認証システムとは異なり、ユーザーの設定はその PC でリセットされます。

この種のデータを保存する最善の方法は、データベースに保存することです。データベース サービスを実行できない場合は、SQLiteを使用するか、JSON または XML ファイルにデータを保存できます。

于 2013-07-26T08:43:23.927 に答える
2

Cookieを使用してデータを保存してみてください

ファイル名を設定するには、次を使用します。

  <?php 
    setcookie("important", $importantFileName); 
  ?>

データを読み取るには、次を使用します。

  <?php 
    $importantFileName = $_COOKIE["important"]; 
  ?>

ただし、これは現在のユーザーに対してのみ機能し、他のユーザーはこれを表示できません。

于 2013-07-26T08:33:39.110 に答える
0

クッキーが役立つ場合があります。他の安全な方法は考えられません。これもあまり優雅ではありません。

http://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer

于 2013-07-26T08:28:58.887 に答える
0

私が見ることができる唯一のオプションは、Cookie を使用することです (Cookie は永続的ではなく、クライアントにファイルとして保存されます)。

別のオプションは、クラウドにデータを保存できるParseなどを使用することです。

ただし、最初のソリューションは(クライアント)ファイルを使用し、後者は別のサーバー上のデータベースを使用するため、スーパーバイザーがどれほど厳格かによって異なります。

于 2013-07-26T08:32:00.323 に答える