ログインフォームがあり、すべてのユーザーが独自のダッシュボードを持つように Web サイトを設計しました。
ログイン後、確認します
if($_POST['username']=="ryan")
{
redirect to ryan;s dashboard
}
if($_POST['username']=="jpn")
{
redirect to jpn;s dashboard
}
1500 のユーザー名についても同様です。大丈夫ですか?
名前とダッシュボードのURLをデータベースに入れます。投稿された名前に基づいてURLを検索し、リダイレクトするための1つのクエリを作成します。6000の代わりに4行のコードがあります。
いいえ。本当に1500の異なるルーチンから選択する必要がある場合は、戦略パターンのようなものを使用する必要があります。
ただし、あなたの場合、それは異なるデータを使用した同じルーチン(ユーザーのダッシュボードのロード)です。手順は同じである必要があります。各ユーザーのダッシュボードをロードするために異なるコードが必要になるのはなぜですか?
それはあなたのデザインの問題だと思います...このようなことは決して起こらないはずです:)
ユーザーダッシュボードを取得し、そのスクリプトにのみユーザーIDを送信するスクリプトを使用する必要があります。
まず、そのように複数のステートメントを実行するのではなく、次のようなswitchステートメントif
を使用することをお勧めします。
switch($_POST['username'])
{
case "ryan" : //redirect to ryan;s dashboard
case "jpn" : //redirect to jpn;s dashboard
}
第二に、誰かのダッシュボードにリダイレクトするためにそれを行うことはまったくお勧めしません。共通のダッシュボードと、ユーザー名とダッシュボードの詳細を含むテーブルが必要です。次に、ユーザー名を使用して単一の関数を呼び出します。
1つのダッシュボードにリダイレクトする必要があります。次に、ダッシュボードでこの値を使用します
login php ....
if($_POST['username'])
{
redirect to dashboard
}
dahsboard php
welcome <?=$_POST['username']?>,
...
..
user spesific things..
1000ユーザーのコードを試してみると、疲れます。
できることは、ユーザー名をセッション変数に保存し、セッション変数に基づいてユーザーダッシュボードをロードすることです。パスワードも要求していると仮定すると、ユーザー名とパスワードの両方を保存する必要があります。それらが正しいことを確認し、その特定のユーザーのダッシュボードをロードします。
たとえば、www.your-domain.com / jpn.htmlにリダイレクトされた場合、これは安全ではありません。これは、a)検索エンジンによってインデックスが作成され、検索結果に表示される可能性があり、b)さらに重要なことにすべてのユーザーが相互にアクセスできるためです。ユーザーのURLを入力するだけでダッシュボード。