2016-12-17 14 views
2

私は、すべての画像が1つのページに上下に表示される画像アップロードWebサイトを作成しようとしています。このページでは、画像をアップロードした人の名前、画像の好きな数などの画像のプロパティの多くを表示します。これはすべての画像で行います。私はこれらの値をデータベースから取得します。誰かが画像をクリックすると、その画像とそのプロパティだけが表示されているページにその人を誘導して欲しい。URLに複数の値を渡す必要がありますか、データベースから値を再度取得する必要がありますか?

これを行うには、私が既にデータベースから取得した画像のすべてのプロパティをURLで渡す必要がありますか?はいの場合、それは安全ですか?そして、もしそうでなければ、私はちょうどURLを介して画像のIDを渡し、データベースから再び値をフェッチする必要がありますか?これは非効率的ではないでしょうか?

ありがとうございます!

+0

安全性は、ユーザーのパスワードや任意のキーなどの機密情報を機密情報としてURLとともに送信した場合にのみ表示されます。あなたの画像の詳細は機密扱いに分類されていないので、URLと一緒に画像IDを渡して、他のページのデータベースから画像の詳細を取得すると、効率的ではありません。 –

+0

ありがとうございました!そしてセッション変数にそれらを格納すればどうなりますか? – meagler

+0

セッションデータを使用することはできますが、特定の画像の詳細に誰かがリンクすることが許可されていますか?もしそうなら、画像IDはURLに含まれる必要があります。 – ivanivan

答えて

1

URLで識別子を渡すことは確かに優れています。どうして?

ベストプラクティス:

それは安全のではなく、ベストプラクティスの問題ではありません。識別子を渡すことは、どの開発者も理解できる。チームで作業している場合や、後でコードを修正する必要がある場合に役立ちます。

特殊文字:

あなたは(GETメソッドで)URLでパラメータを渡すときは、特殊文字に注意を払わなければなりません。たとえば、スペースはエンコードする必要があります。

パフォーマンス:

あなたは、毎日の訪問数百万を持っていない限り、1つの以上のデータベース要求がパフォーマンスを殺すことはありません。さらに、少しの最適化を行うことができます。

最初のリクエストはidと画像urlで、2番目のリクエストは1つの画像のすべての情報で行います。

例:だから

SELECT id, url FROM imageTable 
SELECT * FROM imageTable i WHERE i.id = requestedId 

、フルテーブルにはない、すべてのユーザーが画像の詳細を探して行く場合に便利です開始時にロードする必要はありません。

+0

ああ大丈夫です。ありがとうございます! – meagler

関連する問題