EDIT: After a complaint about assigning myself the answer, I want to update that the answers provided were not satisfactory. No one came out and explicitly said this is your problem, do this and you will have a resolution. Mere suggestions are not sufficient to merit a bounty award. Lastly, the problem was with server settings and after doing some research on server sessions and looking at Stackoverflow/Serverfault I was able to determine how to best resolve this problem. Therefore, I did not feel it was unjust to mark my own answer as the correct one.
Ben kimliğini doğrulamak için LDAP dayanır ve kullanıcıların doğrulanmış durumunu korumak için oturumları kullanan bir php tabanlı kimlik doğrulama sistemi var.
Son zamanlarda ben benim oturum süresi gibi oturum açma sayfasına beni geri iterek gibi görünüyor fark ettim. Sorun ben fark ettim ve böyle bir / test şey hata ayıklama nasıl emin değilim herhangi bir nedenle olmak görünmüyor olmasıdır.
İşte oturumu başlatır benim doğrulama işlevi:
function authenticateUser($user, $password){
//assuming ldap connection and verification of user login/pass
//this is what will happen with authenticate user which is called
//when user submits login/pass on authentication form.
$_SESSION['id'] = $uID;
$time = time();
$_SESSION['time'] = $time;
$_SESSION['lastActivity'] = $time;
$_SESSION['expiration'] = $time+$cookieExpiration;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['secret'] = md5(rand());
$_SESSION['userHash'] = getSessionHash();
$_SESSION['firstLogin'] = isFirstLogin($user);
//assign cookie to user and log authentication
giveCookie("userHash", $_SESSION['userHash'],0);
logAuthenticationAttempt($user, $_SERVER['REMOTE_ADDR'], 1);
return true;
}//end authenticateUser
Cookie fonksiyonu verin:
function giveCookie($name, $value, $expiration=0){
global $path, $site;
setcookie("userHash", $_SESSION['userHash'], $expiration, $path, $site, true, true);
}//end giveCookie
Burada kullanıcı onları doğrulanmış durumunu gerektiren eyleme devam etmek için izin vermeden önce kimlik doğrulaması doğrulamak için her sayfada denir benim fonksiyonudur:
function isValidUser(){
global $links; global $userName; global $userID; global $cookieExpiration;
if(isset($_COOKIE['userHash']) and isset($_SESSION['userHash'])){
if($_COOKIE['userHash'] == $_SESSION['userHash']){
$userName = $_SESSION['nameN'];
$userID = $_SESSION['id'];
//update userHash cookie for additinoal expiration time this way session
$time = time();
$expiration = $time+$cookieExpiration;
$_SESSION['lastActivity'] = $time;
giveCookie("userHash", $_SESSION['userHash'],0);
$_SESSION['expiration'] = $expiration;
return true;
}
}
return false;
}//end isvalidUser()
Bu test etmek konusunda herhangi bir tavsiye veya geribildirim mutluluk duyacağız. Ben zaman zaman bazı eylemi gerçekleştirdikten sonra ben giriş sayfasına geri itti olsun neden anlamaya arıyorum.
Kimlik doğrulaması istemek bir sayfada ne üstünde yapmak şudur:
if(!isValidUser()){changePage($links['login']."?refer=".$links['requestHelp']);}
//note: changePage is just a function for header("location: somepage.php");