2013-08-30 12 views
5

でログインしている場合、ユーザーは、コードのこの作品でログインされているかどうか、私は、ウェブサイトやインデックスページをチェックしに取り組んでいますチェックイン:PHPユーザが機能

if (!$_SESSION['login'] && $_SESSION['login'] == "") { 
include_once($_SERVER['DOCUMENT_ROOT'] . "/login/"); 
} elseif ($_SESSION['login'] == 1) { 
include_once($_SERVER['DOCUMENT_ROOT'] . "/main/"); 
} 

しかし、私はそれをしたいですクリーナー見て、その後私は、関数でこのような何かを達成することが可能だった場合疑問に開始しました:

checklogin($_SESSION['login']); 

私は機能を持つ多くの経験を持っていないので、私の質問は愚かに見える場合、私はそう、ありがとうごめんなさいあらかじめ。

+0

投稿したスニペットは完全に有効です。コードを構造化する方法とロジックを置く場所はあなた次第です。しかし、それは*どこか*でなければなりません。だから、その関数を(2番目の例のように)欲しいのであれば、前の例のロジックはその関数の中になければなりません。それはただ去ることはできません。 可能であれば、既存の認証フレームワークを再利用する必要があります。なぜなら、実際は複雑なためです。たとえば、フレームワークにとらわれずデータベースに依存しないhttps://github.com/delight-im/PHP-Authを見てください。 – caw

答えて

6

だけemptyを使用して、この

if(check_login()) { 
    echo 'You are in!'; 
} else { 
    header('Location: login.php'); 
    exit; 
} 

function check_login() { 
    if(isset($_SESSION['login'] && $_SESSION['login'] != '') { 
     return true; 
    } else { 
     false; 
    } 
} 
3

をお試しください:

if (empty($_SESSION['login'])) { 
    include_once($_SERVER['DOCUMENT_ROOT'] . "/login/"); 
} else { 
    include_once($_SERVER['DOCUMENT_ROOT'] . "/main/"); 
} 

か、それを凝縮:

include_once $_SERVER['DOCUMENT_ROOT'].(empty($_SESSION['login']) ? "/login/" : "/main/"); 
2

あなたが必要なものがあります:

function userCheck() 
{ 
    return (isSet($_SESSION['login']) && $_SESSION['login']); 
} 

if(userCheck()) 
    include_once($_SERVER['DOCUMENT_ROOT'] . "/main/"); 
else 
    include_once($_SERVER['DOCUMENT_ROOT'] . "/login/"); 
1

あなたのアプローチは理にかなっているかどうかの事実を無視して、私はこれは何を期待すると思う:

function checklogin($login){ 
     if (!$login && $login == "") { 
      include_once($_SERVER['DOCUMENT_ROOT'] . "/path/"); 
     } 
} 


// **** call to the function 

     checklogin($_SESSION['login']); 

// **** 
0

あなたはこの機能を使用することができます。

function checklogin() { 
    return (isset($_SESSION['login'])) ? true : false; 
} 

、あなたがしたいページにユーザーがログインしているかどうかを確認してください。

if(checklogin() === true){ 
    //here you would put what you want to do if the user is logged in 
} else { 
    //this would be executed if user isn't logged in 
    header('Location: protected.php'); 
    exit(); 
    //the above would redirect the user 
}