2017-11-28 18 views
0

は、私はそれが(それが存在する場合)あなたが記入URLに応じて、ビューを返すために起こっている、私はルータを持っている小さなプロジェクトを開始しました。ルートベースのmvcでログイン/登録システムを正しく実装するにはどうすればよいですか?

<?php 

require_once 'page.php'; 

class Route 
{ 
    private $_uri = array(); 
    private $_method = array(); 

/* 
* Builds a collection of internal URL's to look for 
* @param type $uri 
*/ 
public function add($uri, $method = null) 
{ 
    $this->_uri[] = '/' . trim($uri, '/'); 

    if($method != null){ 
     $this->_method[] = $method; 
    } 
} 

public function submit() 
{ 

    $uriGetParam = isset($_GET['uri']) ? '/' . $_GET['uri'] : '/'; 

    $page = new Page('index.twig'); 
} 

}

今のテンプレートは、ハードコードですが、私は、後に、データベースからページ名を取得したいので、私は動的なページを持つことができます。だからこそ私はこのコードで適切なログインシステムを作る方法を知る必要があります。私はログインページにリンクして、ダッシュボードにリダイレクトして、ワードプレスやページ作成などのデータを管理できるダッシュボードにリンクしたいと思っています。データが欠落している場合は、コメントに私に尋ねてください。

答えて

0

ログインシステムを作成しようとしているなら、あなたが最も可能性が高いだけログに記録されたint型のユーザがアクセスすることができるURLのセットを持っているしたいと思います。

private $_logged_in_uris = []; 

次に、add()関数を変更して、認証が必要なURLを認識したい場合があります。

/* 
* Builds a collection of internal URL's to look for 
* @param type $uri 
*/ 
public function add($uri, $method = null,$authenticated=false) 
{ 
    $this->_uri[] = '/' . trim($uri, '/'); 
    if($authenticated){ 
     $this->_logged_in_uris[] = '/' . trim($uri,'/'); 
    } 
    if($method != null){ 
     $this->_method[] = $method; 
    } 
} 

なぜ$ _GET ['uri']を使用しているのですか? PHPがあなたに公開するスーパーグローバルからURIを直接取得するのが最善です。この場合、$ _SERVER ['REQUEST_URI']は便利です。

ユーザーは、ユーザーがユーザー名とパスワードでログインした後、あなたはセットアップにセッション変数が必要になります認証されているかどうかを把握します。 $ _logged_in_uris内のuriとurisを比較し、セッション変数を確認できます。セッション変数が設定されている場合は、ウェブサイトのその部分にアクセスできます。

+0

通常の訪問者のためにロックしようとしているページのみが残りのため、ダッシュボードページである私がする$ user-のようなものを有効にするには「ログイン」をクリックした場合だけチェックするPHPファイルを持っている必要があります>ログイン($ username、$ password)? –

関連する問題