我正在研究PHP登录/注册系统(大项目的一部分),我需要记录每个访问者请求。我是第一次使用会话和cookie,所以我不太确定我的逻辑。首先,检查我的逻辑......
逻辑:
public function is_valid_session(){
if(session_and_cookie_is_empty){
//first time visitor
start_new_session();
} elseif(empty_session_but_not_empty_cookie){
status = get_session_data_from_db(session_token_from_cookie);
if(status_is_true){
if(COOKIE_TOKEN == DATABASE_STORED_TOKEN && CURRENT_IP == DATABASE_STORED_IP && CURRENT_TIME() < DATABASE_STORED_TIME){
//valid session
}
} else{
//not first visit but IP changed OR session expired
start_new_session();
}
} else{
if(COOKIE_TOKEN == SESSION_TOKEN && CURRENT_IP == SESSION_IP && CURRENT_TIME() < SESSION_TIME){
//valid session
}
}
}
public function start_new_session(){
//set IP, USER_EMAIL, TOKEN and START time
}
在页面访问时,我将USER_EMAIL
会话变量设置为0
,并在用户成功登录时将其设置为正确的电子邮件。现在我在每个成员页面上都有这个代码:
if(!empty(SESSION)){
if(SESSION['USER_EMAIL'] == 0){
//redirect to login page
}
}
问题: