Apa waktu habis sesi di php?

Tutorial PHP ini digunakan untuk mengatur waktu kedaluwarsa sesi login pengguna untuk pengguna yang login. Setelah waktu ini berlalu maka pengguna tidak lagi mengakses halaman aplikasi yang diautentikasi

Dalam tutorial sebelumnya, kita telah membuat variabel sesi setelah pengguna masuk ke aplikasi kita

Dalam tutorial ini, kita akan menambahkan stempel waktu masuk saat ini ke sebuah sesi. Menggunakan stempel waktu ini kami memeriksa apakah waktu kedaluwarsa sesi login tercapai. Jika ya, pengguna akan logout

Lihat DemoUnduh

Kode HTML untuk Login Pengguna

Kode ini untuk menampilkan formulir login ke pengguna

Apa waktu habis sesi di php?






		
			Enter Login Details
		
		
			Username
			
		
		
			Password
			
		
		
			
		
	

Membuat Sesi Login Pengguna

Dalam kode ini, kami menambahkan id pengguna yang masuk dan waktu masuk ke variabel sesi. Kemudian, kami menjalankan fungsi PHP untuk memeriksa apakah waktu kedaluwarsa sesi login telah berlalu

Jika tidak tercapai, maka pengguna akan diarahkan ke dashboard

if(count($_POST)>0) {
	if( $_POST["user_name"] == "admin" and $_POST["password"] == "admin") {
		$_SESSION["user_id"] = 1001;
		$_SESSION["user_name"] = $_POST["user_name"];
		$_SESSION['loggedin_time'] = time();  
	} else {
		$message = "Invalid Username or Password!";
	}
}

if(isset($_SESSION["user_id"])) {
	if(!isLoginSessionExpired()) {
		header("Location:user_dashboard.php");
	} else {
		header("Location:logout.php?session_expired=1");
	}
}
_

Fungsi PHP untuk Memeriksa Timeout Sesi Login

Fungsi ini akan dipanggil di awal semua halaman yang diautentikasi. Fungsi ini mengembalikan TRUE jika sesi login pengguna berakhir, FALSE jika tidak

function isLoginSessionExpired() {
	$login_session_duration = 10; 
	$current_time = time(); 
	if(isset($_SESSION['loggedin_time']) and isset($_SESSION["user_id"])){  
		if(((time() - $_SESSION['loggedin_time']) > $login_session_duration)){ 
			return true; 
		} 
	}
	return false;
}

Kedaluwarsa Sesi Login Pengguna Keluar

Logout ini. Halaman php akan "membatalkan" sesi pengguna yang masuk dan memeriksa status flag session_expired. Jika sudah diatur, maka pesan batas waktu sesi login akan ditampilkan kepada pengguna

Ini menyediakan metode untuk mengatur batas waktu untuk sesi di PHP. Kami dapat menghentikan waktu sesi PHP baik secara terprogram atau menggunakan sesi. konfigurasi gc_maxlifetime dalam file PHPs ini atau dengan memanggil fungsi ini_set

23 April 2020

Kita dapat menggunakan sesi dalam PHP untuk menyimpan atau mempertahankan data sementara pengguna untuk durasi tertentu seperti yang dibahas dalam Menggunakan Sesi dalam PHP. PHP masih perlu menyimpan id sesi menggunakan Cookie di browser atau sisi klien seperti yang ditunjukkan pada Gambar 1

Apa waktu habis sesi di php?

Gambar 1

ID sesi yang disimpan di browser di Cookie PHPSESSID adalah satu-satunya cara yang dapat digunakan PHP untuk mengidentifikasi sesi pengguna di sisi server. Ini masih memperlihatkan Cookie PHPSESSID untuk penyerang untuk mencurinya dan meminta server untuk memproses permintaan atas nama pengguna yang sebenarnya. Hal ini menyebabkan pembajakan sesi di mana id sesi yang dicuri dapat digunakan oleh penyerang untuk mengakses data dari sesi aktif. Untuk mencegah permintaan yang tidak sah, kami juga dapat menggunakan token kriptografi yang kuat yang terus berubah untuk setiap permintaan yang dibuat oleh klien

Kami dapat memperketat keamanan lebih lanjut dengan mengatur waktu sesi segera setelah penggunaannya selesai. Ini juga menghapus cookie sesi di browser atau sisi klien. Tutorial ini menyediakan metode untuk mengatur batas waktu sesi dalam PHP. Kami dapat menghentikan waktu sesi PHP baik secara terprogram atau menggunakan sesi. konfigurasi gc_maxlifetime dalam file PHPs ini atau dengan memanggil fungsi ini_set

Perbarui PHP ini

Kami dapat memperbarui sesi. gc_maxlifetime dengan memperbarui file PHP ini. Saya telah memberikan beberapa contoh seperti yang ditunjukkan di bawah ini

# WampServer -> Example -> <WampServer Path>/bin/php/php7.2.14/php.ini

# XAMPP -> Example -> <XAMPP Path>/php/php.ini

# Ubuntu -> Apache Example -> /etc/php/7.2/apache2/php.ini

Sekarang cari php.ini Anda. file ini untuk sesi. gc_maxlifetime dan perbarui seperti yang ditunjukkan di bawah ini

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; http://php.net/session.gc-maxlifetime
;session.gc_maxlifetime = 1440
session.gc_maxlifetime = 900
_

Saya telah memperbarui nilai default dari 24 menit menjadi 15 menit seperti yang ditunjukkan di atas. Sekarang restart server Apache atau Nginx berdasarkan pengaturan server Anda

Anda juga dapat menghentikan waktu cookie dengan mengubah nilai default 0 menjadi nilai waktu tunggu sesi yang sama. Pastikan Anda memperbarui waktu kedaluwarsa Cookie pada setiap permintaan dalam kasus seperti itu

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
;session.cookie_lifetime = 0
session.cookie_lifetime = 900

Gunakan Fungsi ini_set

Kita juga dapat menggunakan fungsi ini_set daripada mengubah durasi timeout sesi default seperti yang ditunjukkan pada langkah sebelumnya. Kita dapat memanggil fungsi ini_set untuk mengubah session. gc_maxlifetime seperti yang ditunjukkan di bawah ini

// Configure timeout to 15 minutes
$timeout = 900;

// Set the maxlifetime of session
ini_set( "session.gc_maxlifetime", $timeout );

// Also set the session cookie timeout
ini_set( "session.cookie_lifetime", $timeout );

// Now start the session
session_start();

// Update the timeout of session cookie
$sessionName = session_name();

if( isset( $_COOKIE[ $sessionName ] ) ) {

setcookie( $sessionName, $_COOKIE[ $sessionName ], time() + $timeout, '/' );
}
_

Waktu Tunggu Sesi Terprogram

Kita dapat menghentikan sesi secara terprogram tanpa mengubah konfigurasi PHP menggunakan contoh seperti yang ditunjukkan di bawah ini. Ini berfungsi persis seperti yang kita inginkan tanpa bergantung pada pengumpulan sampah PHP yang mungkin tidak membatasi waktu sesi pada durasi yang ditentukan seperti yang dibahas di bagian sebelumnya

// Start the session
session_start();

// Session timeout duration in seconds
// Specify value lesser than the PHPs default timeout of 24 minutes
$timeout = 900;

// Check existing timeout variable
if( isset( $_SESSION[ 'lastaccess' ] ) ) {

// Time difference since user sent last request
$duration = time() - intval( $_SESSION[ 'lastaccess' ] );

// Destroy if last request was sent before the current time minus last request
if( $duration > $timeout ) {

// Clear the session
session_unset();

// Destroy the session
session_destroy();

// Restart the session
session_start();
}
}

// Set the last request variable
$_SESSION['lastaccess'] = time();

Ringkasan

Tutorial ini memberikan detail tentang pentingnya batas waktu sesi dan juga menyediakan opsi untuk menentukan durasi batas waktu sesi

Berapa lama batas waktu sesi di php?

Biasanya waktu tunggu sesi PHP default adalah 24 menit (1440 detik) , tetapi host web Anda mungkin telah mengubah default ke yang lain.

Apa itu waktu habis sesi?

Waktu tunggu sesi menentukan waktu pengguna dapat tetap menganggur sebelum sesi diakhiri dan pengguna harus masuk lagi . Waktu habis sesi mencakup administrator yang masuk melalui layanan portal.

Bagaimana cara menghapus batas waktu sesi di php?

Cara Memodifikasi Batas Waktu Sesi di PHP .
Memulai Sesi. Gunakan session_start() Hasilkan Variabel Sesi. Menghancurkan Variabel dan Sesi
Memodifikasi Timeout Sesi
Fungsi session_start() di PHP

Berapa waktu maksimum sesi di php?

Batas defaultnya adalah 30 detik atau, jika ada, nilai max_execution_time yang ditentukan dalam php. ini.