0

ユーザーは、ログイン後に自分のデータを送信できます。mysql には、項目とカテゴリの 2 つのテーブルがあります。カテゴリにはフィールド user_id がありますが、アイテム テーブルにはありません。すべてのアイテムがカテゴリに属している必要があります。

ユーザーがカテゴリを送信すると、セッションからユーザー ID を取得して挿入します。彼がアイテムを提出するとき、私はそれのcategory_idを設定します。

問題は、ユーザーが単純に category_id を書き換えて (javascript、フロントエンドで、カテゴリをクリックして、category_id を設定する)、アイテムを自分に関係のないカテゴリに送信できることです。

私が考えている2つの解決策(しかし、私はこのように作っていません):

ユーザーがアイテムを挿入すると、カテゴリの関係をチェックし、ユーザーのものでない場合は終了します。

user_id フィールドも items テーブルに追加します(適切なオプションとは思えません)。

この場合の適切な/一般的な解決策は何ですか?

4

2 に答える 2

1

user_idフィールドもitemsテーブルに追加します

カテゴリテーブルにすでにuser_idがあり、各アイテムにカテゴリがあることが確実な場合は、ご想像のとおり、これは不要な重複です。

カテゴリの関係を確認し、それがユーザーのものでない場合は、その終了を確認します。

これがその方法です。アイテムを挿入する前にカテゴリIDを読み取るときは、カテゴリがユーザーのものであることを確認してください。単純。私はおそらくただshow_404()ですが、意味のあるエラーメッセージを表示したいのかどうかはあなた次第です。

于 2012-10-25T17:30:17.480 に答える
0

カテゴリテーブルにuser_id列を作成してみませんか。ユーザーがエントリを送信しようとするときは、user_idを確認してください。そうでない場合は、ユーザーが必要な場所にリダイレクトします。

于 2012-10-25T17:43:19.153 に答える