Đặt cookie phiên php

Khi đăng nhập vào 1 trang web chỉ cần đăng nhập 1 lần và sau 1 khoảng thời gian nhất định không cần phải đăng nhập lại mặc dù trang web đã tắt, đó chính là 1 ứng dụng của phiên. Nhưng chỉ là tắt 1 tab, nếu tắt trình duyệt thì phiên làm việc sẽ mất

Phiên giúp lưu trữ thông tin về người dùng, các giá trị trong khoảng thời gian tương tác với trang web.  

Phiên là phiên làm việc, là 1 khoảng thời gian tương tác giữa người sử dụng và trang web. Phiên được tạo bởi trang web (PHP) và được lưu trong 1 tệp trên máy chủ, thời gian tồn tại của mã phiên quy định

Thao tác với session

Use session

Trên mỗi trang

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0  gọi hàm
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
1 ở đầu tệp php.

Khai báo 1 biến

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
2  session with key
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0 has value is
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
1

Hủy 1 buổi

Hủy 1 phiên với khóa đã biết

Ví dụ với khóa 

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0, gọi hàm
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
3 để hủy phiên với khóa tên người dùng

Kiểm tra phiên tồn tại

Kiểm tra phiên tồn tại với khóa cho trước

Ví dụ

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0, gọi hàm
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
5  

Hàm này sẽ trả lại cho

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
6 nếu
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0 đã tồn tại và đảo ngược

Nhận giá trị của phiên

Get the value of the session for before

Ví dụ với khóa

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0, truyền đúng từ khóa
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0 vào phiên "mảng"
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
00

Thử nghiệm

Tạo biểu mẫu đăng nhập trong trang signin_page. php

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
1

Tạo trang xử lý đăng nhập doSignin. php

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>

Nếu

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
01 chưa tồn tại thì trang web sẽ xử lý việc đăng nhập 
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
02  còn nếu đã tồn tại thì được phép vào trang
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
03. Sau khi gửi biểu mẫu đăng nhập, dữ liệu
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0 và
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
05 sẽ được truyền tới trang
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
06. Giả sử
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0 và
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
05 đúng với dữ liệu trong cơ sở dữ liệu thì web sẽ cho phép đăng nhập và tạo phiên có tên
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
09 và gửi về trình duyệt web.

Chú thích.

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
20 là 1 hàm hỗ trợ dữ liệu cache, có nhiệm vụ lưu trữ dữ liệu và truyền dữ liệu sang trang khác đồng thời chuyển hướng đến trang đó bằng dòng mã sau
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
21

Bánh quy

Khái niệm

  • Cookie được tạo ra và lưu trữ tại máy khách, nói rõ hơn là tại máy tính hoặc các thiết bị khác. 1 cookie được tạo ra có thời gian tồn tại nhất định tùy thuộc vào người lập trình, chức năng và vai trò của nó trong trang web
  • Chức năng của cookie khá giống với phiên. 1 ứng dụng đơn giản, dễ hiểu nhất của cookie là tự động đăng nhập tài khoản hoặc lưu thông tin đăng nhập, thu hàng trên trang web mà khi tắt trình duyệt web thậm chí khởi động lại máy tính thì cookie vẫn không bị hủy. Cookie được gửi tự động lên máy chủ khi truy cập vào trang web để thực hiện việc đăng nhập
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
0

in which

  • <?php
    	session_start();
    	ob_start();
    
    	// TODO: CHECK SIGNED IN
    	if (isset($_SESSION['statusLogin'])
    			&& $_SESSION['statusLogin'] == 'YES')
    	{
    		header("location:user_info.php");
    	}
    	
    	// TODO: SIGN IN
    	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
    	
    	if (isSignedin == TRUE)
    	{
    		$_SESSION['statusLogin'] = 'YES';
    	}
    ?>
    
    22. key name
  • <?php
    	session_start();
    	ob_start();
    
    	// TODO: CHECK SIGNED IN
    	if (isset($_SESSION['statusLogin'])
    			&& $_SESSION['statusLogin'] == 'YES')
    	{
    		header("location:user_info.php");
    	}
    	
    	// TODO: SIGN IN
    	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
    	
    	if (isSignedin == TRUE)
    	{
    		$_SESSION['statusLogin'] = 'YES';
    	}
    ?>
    
    23. giá trị
  • <?php
    	session_start();
    	ob_start();
    
    	// TODO: CHECK SIGNED IN
    	if (isset($_SESSION['statusLogin'])
    			&& $_SESSION['statusLogin'] == 'YES')
    	{
    		header("location:user_info.php");
    	}
    	
    	// TODO: SIGN IN
    	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
    	
    	if (isSignedin == TRUE)
    	{
    		$_SESSION['statusLogin'] = 'YES';
    	}
    ?>
    
    24. thời gian tồn tại của cookie, trong trường hợp này
    <?php
    	session_start();
    	ob_start();
    
    	// TODO: CHECK SIGNED IN
    	if (isset($_SESSION['statusLogin'])
    			&& $_SESSION['statusLogin'] == 'YES')
    	{
    		header("location:user_info.php");
    	}
    	
    	// TODO: SIGN IN
    	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
    	
    	if (isSignedin == TRUE)
    	{
    		$_SESSION['statusLogin'] = 'YES';
    	}
    ?>
    
    25 là thời gian hiện tại và được cộng thêm 2 giờ

Để hủy 1 cookie cũng sử dụng lại dòng mã trên nhưng được đặt thời gian là time()-7200

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
2

Thử nghiệm

Tạo 1 biểu mẫu đăng nhập

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
26

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
1

Trong trường hợp này tại phần xử lý

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
27 kiểm tra xem liệu
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
28 tồn tại tức thời ở bên cạnh biểu mẫu đăng nhập được chọn vào
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
29
<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
10 thì trang web sẽ tạo ra 1 cookie để lưu trữ .

Hướng dẫn login with cookie php

Tiếp đến tạo 1 trang

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
06

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
7

Tạo trang

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
12 kiểm tra đăng nhập trước khi hiển thị thông tin bằng đoạn mã sau

<?php
	session_start();
	ob_start();

	// TODO: CHECK SIGNED IN
	if (isset($_SESSION['statusLogin'])
			&& $_SESSION['statusLogin'] == 'YES')
	{
		header("location:user_info.php");
	}
	
	// TODO: SIGN IN
	isSignedin = DoSignIn($_POST['username'], $_POST['password']);
	
	if (isSignedin == TRUE)
	{
		$_SESSION['statusLogin'] = 'YES';
	}
?>
9

Ở thời gian tồn tại của cookie là 1 tuần, mỗi lần truy cập vào trang web, cookie sẽ được gửi lên máy chủ và đăng nhập vào hệ thống bằng cookie chính này