2

次のようなURL変数を生成できるようにしたいと思います。

http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf

変数はMySQLレコードセットと一致するので、それを引き出すことができます。そのレコードセットの作成時に、このキーを作成したいと思います。

これどうやってするの?これを行うための最良の方法は何ですか?利用できる既存のクラスはありますか?

皆さんありがとう

4

4 に答える 4

0

これは、いくつかの方法で非常に簡単に実行できます。

  • MD5などのハッシュを使用します。(長くなります)
  • Base-64は特定のIDまたはデータをエンコードします

MySQLレコードでこれをすでに行っているものがあるかどうかを尋ねている場合、デザイン的には、データが実際に、実際には概念的にWebサイトのURLから遠く離れているものが見つかるかどうかはわかりません。 Grailsのようなフレームワークでも。ほとんどの場合、フロントエンドとデータアクセス機能を1つにまとめようとはしません。

于 2009-06-30T19:49:46.170 に答える
0

これをどのような状況で使用しますか?投稿変数を渡さないのはなぜですか?それははるかに安全できれいです。あなたはまだid=195yqのようなURLの数を達成するでしょう、そしてあなたのphp.iniファイルを構成することによってそれらを隠す方法があります。

これがお役に立てば幸いです。

これを覚えておいてください。アドレスバーに変数を渡すと、誰かが変数を変更したり、アクセスしたくない情報にアクセスしたりするのは簡単です。

于 2009-06-30T19:52:47.287 に答える
0

示した例では、数値の主キーをbase-64でエンコードしているように見えます。これは私が過去に行ったことがある方法ですが、base-64デコードは簡単であるため、IDを平文で渡すよりも優れているかどうかはわかりません。

于 2009-06-30T19:53:33.697 に答える
0

基本的に、ある種のハッシュ関数が必要です。

これは、SHA-1関数、MD5関数(altCogitoとして)、またはレコードにある他のデータを使用してエンコードすることができます。

いくつのレコードがあると思いますか?ハッシュ関数は十分にカバーできる大きさである必要があるため、ソリューションの選択には注意してください。ただし、大きすぎると、必要以上に大きなデータベースが作成されます。私はSHA-1を使用し、必要に応じて64ビットまたは32ビットに切り捨てました。

また、RESTも見てください。URLはそれほど神秘的である必要はないかもしれないと考えてください...

于 2009-06-30T19:54:59.233 に答える