1

私のphpプロジェクトの人たちは、ログインページのセッションのステータスを確認したいと思います。設定されていない場合は、ユーザーにログインしてもらいたいです。ihaveはこのコードをログインページに追加しましたが、ループするので役に立ちません。

if (strlen(session_id()) < 1) {
    ?>
    <script>window.location.href="login.php";</script>  
    <?php     
}
elseif(strlen(session_id()) > 1){ 
    ?>   
    <script>window.location.href="index.php";</script>   
    <?php 
}

Now other thing I want is if session is already started and if user manually tries to go on login page from address bar he should be redirected back to that current page.

If he is not logged in he should be redirected back to login page if he tries to open directly any page.

Also a new doubt with this is
Guys i m using wamp server to run my PHP projects.I have used PHP sessions in my projects,Now when a user logins from one project the sessions get set and if on same pc if user open some other project which are not linked to each other he gets directly logged in without even doing it, if he logouts from one project he gets logout from all other project running on that pc.

4

3 に答える 3

6

これを試して:

<?php
    session_start();
    if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == 1) {
        //session is set
        header('Location: /index.php');
    } else if(!isset($_SESSION['logged_in']) || (isset($_SESION['logged_in']) && $_SESSION['logged_in'] == 0)){
        //session is not set
        header('Location: /login.php');
    }
?>

上記のコメントへの返信として、はい、ユーザーがログインしたときにセッション変数を作成する必要があります。それを反映するようにコードを編集しました。

于 2012-07-17T19:50:14.017 に答える
2

セッションの存在ではなく、特定のセッション値をチェックしたい。

if ($_SESSION['logged_in']==1){

//
}else{

//
}

ログイン時に$_SESSION['logged_in']を1に設定し、ログアウト時に設定を解除(または0に設定)します。

于 2012-07-17T19:54:41.763 に答える
0
  1. session_start();を含めることを忘れないでください。すべてのページの上部で、SESSIONの変数SETの値を$ _SESSION ['example']から取得します。そうしないと、セッション変数値、または

  1. 別のアプローチは、session_start()を使用することです。config.phpファイル内にあり、セッションが必要なすべてのページのコードの上部にそのファイルを含めます。そうしないと、UはSESSION変数の値を取得できません。
于 2013-11-28T10:42:40.387 に答える