2011-12-15 9 views
0

他の静的URLから動的URLにナビゲートするための静的ナビゲーションシステムをPHPの動的ナビゲーションシステムに変更するにはどうすればよいですか?静的ナビゲーションシステムをPHPの動的ナビゲーションシステムに変更するにはどうすればいいですか?

例えば、

次のセッション変数に基づいて、ログイン・リダイレクトヘッダは、IDが主キーであり、それは対応する値1

を持つMySQLデータベースに格納された自分のID値とlnkedランディングページに認証されたユーザーをリダイレクト
header('Location: user.php?id=' . $_SESSION['user_id']); 

上記ヘッダは、次の動的URLにユーザーをリダイレクトし、Naある

www.anysite.com/anydirectory/user.php?id=1 

vigationメニューのように、ここで

<a herf="user.php"> User Account</a> 
<a href="setting.php">User Setting</a> 
<a href="profile.php">User profile</a> 
<a href="logout.php">Log Out</a> 

ナビゲーションリンク、

<a herf="user.php"> User Account</a> 

自体は、

ログインに成功した後、次の動的リンク/ページにリダイレクトされたユーザーの静的着地リンク/ページです
www.anysite.com/anydirectory/user.php?id=1 

さて、それぞれのユーザは、リンクにナビゲートする方法

www.anysite.com/anydirectory/user.php?id=1 

また
<a href="setting.php">User Setting</a> 
<a href="profile.php">User Profile</a> 

、のような他のナビゲーションリンクから

なく

www.anysite.com/anydirectory/user.php 

に、どのように私は次の静的ナビゲーションリンクを変更するものとし、

<a herf="user.php"> User Account</a> 
<a href="setting.php">User Setting</a> 
<a href="profile.php">User profile</a> 

ベースのセッション変数には、認証されたユーザの対応するID値に関連する動的リンクは、アブールリンクが見えるように、

www.anysite.com/anydirectory/user.php?id=1 
www.anysite.com/anydirectory/setting.php?id=1 
www.anysite.com/anydirectory/profile.php?id=1 

すべての静的リンクは認証されたユーザーに関するものなので、

注:任意の助けを事前にHow to redirect the users to their id specific urls/landing pages after they log in?

おかげで、ログインセッションを確認することができます。

答えて

0

getに設定されたIDに基づいて認証を行うべきではありません。これは簡単に変更または削除できます。

あなたはあなたのコードでは、次のロジックを記述お勧めします。

  1. あなたは
  2. ID、パスワード、およびいくつかの巧妙なセキュリティのものがクッキー(またはセッション)に設定されている
  3. 上で正常にログイン
  4. 無効であれば、再度ログインするように強制します。
  5. 有効な場合は、すでにユーザーIDを持っています。

ユーザーに別のユーザーのプロフィールやページを「訪問」する場合は、urlにuser-idを追加する必要があります。 facebookでprofile.phpはあなたのプロフィールを指していますが、profile.php?id = 111はid 111のプロフィールを指しています。あなたは誰もが誰の設定ページにもアクセスできないようにしたいのですか?

+0

さて、あなたの他の質問を見て、あなたはセッションと同じUSER_ID – OptimusCrime

+0

まあ、authicationプロセスはIDのみセッションに基づいていないとクッキーの両方を持っています。このプロセスには、セッションとCookieベースのセキュリティ対策の組み合わせが含まれます。既存のプロセスでは、ユーザーIDをデータベースに格納できますが、必要に応じて各ユーザーがリンクをブックマークできるように、URLの主キー(この場合はid)に基づいてキーと値のペアを追加する必要があります彼らはページ内の特定のログインを介してログインすることができます。 – polarexpress

+0

リンクをブックマークすることはできます。これは真にダイナミックなページの作り方です。 – OptimusCrime

0

私はこの問題を最終的に解決しました。他の視聴者のガイドラインになるように、ここにソリューションを投稿しています。

フォーム変数&などの定義済みのPHPバリエーションをプライマリキーまたはユニークキーの値としてエコー/クエリすることによって行うことができます(ここでは、 'id'はデフォルトでプライマリキーとユニークキーです)。 herfタグ

<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Account</a> 
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Setting</a> 
<a href="user.php?id=<?php echo $_SESSION['user_id']; ?>">User Profile</a> 
関連する問題