Example #1
0
        // redirect to login page
        header('Location: login.php?t=login&msg=1');
        break;
        /**
         *
         *   User Session Expired (Forced Logout)
         *
         */
    /**
     *
     *   User Session Expired (Forced Logout)
     *
     */
    case 'exp':
        // define variable for existing session id
        $frm_sdk_act_ses = sdk_ses_decode($_SESSION['sdk_ses_usr']);
        // sdk_log()
        // update user session in database
        $sql_update_key = $frm_sdk_act_ses;
        $sql_update_table = 'sdk_act_ses';
        // set status to 3 (session expired)
        $sql_update_values = array("sdk_act_ses_status" => "3");
        // execute sql query
        $sql_sdk_act_usr_update = sql_update($sql_update_table, $sql_update_values, $sql_update_key);
        // destroy browser session
        session_destroy();
        // redirect to login page
        header('Location: login.php?t=login&msg=5');
        break;
}
// switch()
 *
 *   User Account Selection based on SESSION Variable
 *
 *   Use the session variable created during login to lookup
 *   user account information that will be used for creating
 *   a personalized experience in the UI.
 *
 */

    if(isset($_SESSION['sdk_ses_usr'])) {

        // define variables from SESSION values
        $sdk_ses_usr                  = $_SESSION['sdk_ses_usr'];

        // decode session variable
        $ses_sdk_act_ses                = sdk_ses_decode($sdk_ses_usr);

        // select user session from database
        $ses_sdk_act_ses_first         = sql_first($model_sdk_act_ses,array("sdk_act_ses"=>$ses_sdk_act_ses));

        // define variables from database values
        $ses_sdk_act_usr                = $ses_sdk_act_ses_first['sdk_act_usr'];
        $ses_sdk_act_ses_created_at     = $ses_sdk_act_ses_first['sdk_act_ses_created_at'];
        $ses_sdk_act_ses_updated_at     = $ses_sdk_act_ses_first['sdk_act_ses_updated_at'];
        $ses_sdk_act_ses_status         = $ses_sdk_act_ses_first['sdk_act_ses_status'];

        // select user account from database
        $ses_sdk_act_usr_first         = sql_first($model_sdk_act_usr,array("sdk_act_usr"=>$ses_sdk_act_usr));

        // define variables from database values
        $ses_sdk_act_uid                = $ses_sdk_act_usr_first['sdk_act_uid'];
    /**
     *
     *   Session Check
     *
     *   Check if Existing User Session is Valid
     *
     */

        function sdk_ses_check() {

            // Define global variables
            global $ses_sdk_act_ses_updated_at;
            global $model_sdk_act_ses;
            global $sdk_enviro_timeout;

            // if user session does not exist
            if(!isset($_SESSION['sdk_ses_usr'])) {

                // redirect to login page
                header('Location: login.php?pag=lgn&msg=X');

            }

            // if user session exists
            if(isset($_SESSION['sdk_ses_usr'])) {

                // reference variables from app/includes/session.php
                // $ses_sdk_act_usr_updated_at
                // $ses_sdk_act_usr_status

                // define variable for existing session id
                $frm_sdk_act_ses                = sdk_ses_decode($_SESSION['sdk_ses_usr']);

                // count # of sessions that exist in the database
                // note: even if a user logs in multiple times, each will have a unique session #
                $ses_sdk_act_ses_count         = sql_count($model_sdk_act_ses,array("sdk_act_ses"=>$frm_sdk_act_ses));

                // if session # cannot be found
                if($ses_sdk_act_ses_count!='1') {

                    // redirect to login form post (no session exists)
                    // header('Location: login.php?msg=A');

                }

                // calculate time difference since last activity to now (in minutes)
                $ses_time_diff = sdk_timediff($ses_sdk_act_ses_updated_at);

                /*

                // if time difference is greater than environment timeout (session expired)
                if($ses_time_diff>=$sdk_enviro['timeout']) {

                    // redirect to login form post to expire the session
                    header('Location: login.php?p=login&t=exp&f=post');

                } // if($ses_time_diff>=$sdk_enviro['timeout'])

                */

                // if time difference is less than environment timeout (session active)
                if($ses_time_diff<$sdk_enviro_timeout) {

                    // sdk_log()

                    // update user session in database
                    $sql_update_key = $frm_sdk_act_ses;
                    $sql_update_table = 'sdk_act_ses';

                    // set status to 1 (session active)
                    // the sql query will automatically update the "updated_at" value
                    $sql_update_values = array(
                        "sdk_act_ses_status" => "1"
                        );

                    // execute sql query
                    $sql_sdk_act_usr_update = sql_update($sql_update_table,$sql_update_values,$sql_update_key);

                } // if($ses_time_diff<$sdk_enviro['timeout'])

            } // if(isset($_SESSION['sdk_ses_usr']))

        }