v2.5.2
Giriş yap

PHP Session'a timeout nasıl verebilirim?

alibartuuzuner
601 defa görüntülendi ve 2 kişi tarafından değerlendirildi

PHP Session'a timeout vermek istiyorum yani bir zaman sonra session otomatik sonlandırılsın.

Session oluşturma kodlarım aşağıdakilerdir

functions.php

function loginControl($loginStatus = false) {
	switch($loginStatus)
	{
		case false: {
			if(trim($_SESSION['login'])) {
				header('Location: login.php');
			}
			
			break;
		}
		
		case true: {
			if(!trim($_SESSION['login'])) {
				header('Location: login.php');
			}

			break;
		}
	}
}

login.php

if(isset($_POST['login'])) { 
	$username = mysqli_real_escape_string($connection, $_POST['username']);
	$password = $_POST['password'];
	
	$pwmd5 = md5($password);

	$GETpassword = mysqli_query($connection,"SELECT * from accounts where username='$username' and password='$pwmd5'");
	$QUERYpassword = mysqli_num_rows($GETpassword);

	if($QUERYpassword >= 1) {
		$_SESSION['login'] = $username;
		echo "<script> window.location.replace('index.php') </script>";
	}
	else {
		echo '<div class="alert alert-danger p-1 fw-bold" role="alert"><div class="container text-center"><i class="far fa-info-circle"></i> Şifre veya Kullanıcı Adı yanlış!</div></div>';
	}
}
alibartuuzuner
1248 gün önce

@sercanaga , demek istediğini pek anlamadım ama sanırım böyle olucak;

functions.php

	function loginControl($loginStatus = false) {
		switch($loginStatus)
		{
			case false: {
				if(trim($_SESSION['login'])) {
					header('Location: login');
				}
				
				break;
			}
			
			case true: {
				if(!trim($_SESSION['login'])) {
					header('Location: login');
				}

				break;
			}
		}
	}

	if ((time() - $_SESSION['login']['login_date']) > (60 * 30)) {
		unset($_SESSION['login']);
	}

login.php

	if(isset($_POST['login'])) { 
		$username = mysqli_real_escape_string($connection, $_POST['username']);
		$password = $_POST['password'];
		
		$pwmd5 = md5($password);

		$GETpassword = mysqli_query($connection,"SELECT * from accounts where username='$username' and password='$pwmd5'");
		$QUERYpassword = mysqli_num_rows($GETpassword);

		if($QUERYpassword >= 1) {
			$_SESSION['login'] = $username;
			$_SESSION['login'] = ['login_date' => time()];

			echo "<script> window.location.replace('index') </script>";
		}
		else {
			echo '<div class="alert alert-danger p-1 fw-bold" role="alert"><div class="container text-center"><i class="far fa-info-circle"></i> Şifre veya Kullanıcı Adı yanlış!</div></div>';
		}
	}