ini_set('session.gc_maxlifetime', 3600); // saniye cinsinden en uzun kalmasi gereken uye tipinin suresi
//session start include lari es geciyorum kendinize gore duzenlersiniz.
function is_logged_in(){
if(isset($_SESSION['alogin']) && isset($_SESSION['atime']) && $_SESSION['atime']>time()){
//session alogin ve atime degeri var ise,
//atime degeri simdiki zamandan buyukse
return true;
}
return true;
}
if(is_logged_in()){
//zaten login olmus
header('Location: /dashboard.php');
exit();
}else{
if(isset($_POST['login']) && isset($_POST['username']) && isset($_POST['password'])) {
$email = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$sql = 'SELECT isim,sifre FROM admin WHERE isim=:email and sifre=assword';
$query = $dbh->prepare($sql);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam('assword', $password, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_OBJ);
if($query->rowCount() > 0) {
$_SESSION['alogin'] = $email;
$_SESSION['atime'] = time()+(30*60); // simdiki zaman + 30 dakika * 60 saniye
header('Location: /dashboard.php');
exit();
} else{
header('Location: /login.php');
exit();
}
}
}ayrica php server side bir programlama dilidir. kullanici login olup o sayfada hicbir islem yapmadan bekliyorsa, session suresi dolsa bile otomatik cikis vs olmaz.
bunun icin javascript ile belirli araliklarla kullanicinin session durumunu server side kontrol etmelisiniz ve login degilse javascript ile kullanici login sayfanıza yonlendirmelisiniz.
yukarida bir fikir vermesi ufak bir ornek verdim kendinize gore ve az once soylediklerime gore duzenlemezseniz istediğinizi yapmaz.