Bài 6: Session và Cookies trong PHP

Để chuyền biến từ trang web này sang trang web khác như bài trước ta có thể dung biến form, nhưng như vây hơi phức tạp để áp dụng đối với một số trường hợp bài này chúng ta sẽ tìm hiểu session và cookie để có lựa chọn tốt hơn

Mục lục

    6.1. Tìm hiểu Session

    Session là tập hợp những biến tạm tồn tại cho đến khi đóng trình duyệt, trừ khi ta có những chỉ định khác trong file cấu hình php.ini. Mỗi Session có một session ID duy nhất, có thể được truyền qua cookie hoặc qua URL nếu phương thức trước không được phép, để bắt đầu một session, sử dụng hàm session_start() và không được dùng hàm session_register, trong trường hợp ta giả định register_globals trong php.ini là off.

    Biến session có dạng: $_SESSION[‘ten bien’]

    Gán giá trị $_SESSION[‘tendangnhap’]=”LinhTTT”;

    Lấy giá trị $nguoidung=$_SESSION[‘tendangnhap’];

    Ví dụ

    <?php
        session_start();
        $_SESSION['tendangnhap']="Linh TTT";
    ?>

    Các thông tin về session phải đặt ngay đầu trang, trước bất kỳ mã HTML nào. Nếu phần trước đoạn mã PHP tại đầu trang có khoảng trắng thì sẽ báo lỗi.

    Nếu trang nào sử dụng biến session thì trang đó phải khai báo session_start() ở đầu trang.

    Ví dụ sử dụng session

    <?php
    	session_start();
    
    ?>
    <html>
    <head>
    </head>
    <body>
    	<?php
    		if (!empty($_SESSION['tendangnhap'])) {
    			echo'<h3>Ho so ca nhan</h3>';
    		} else {
    			echo'<h3>Ban can dang nhap de truy cap trang nay</h3>';
    		}
    	?>
    
    </body>
    </html>

    6.2. Tìm hiểu Cookie

    Cookie là những mẫu thông tin nhỏ được lưu trên máy người dùng web. Các Cookies do Webserver phát sinh, lưu trữ lại, sau đó sẽ được đọc ở lần truy cập sau.

    Để có thể sử dụng một cookie bạn  phải sử dụng hàm: setcookie() như sau: setcookie(‘tên cookie’, ‘giá trị’, ‘thời gian kết thúc’, ‘đường dẫn’, ‘vùng’, ‘kết nối an toàn’);

    Ví dụ

    <?php
        setcookie("tendangnhap", "Linh TTT", time()+60);
    ?>

    Thông thường các bạn đăng nhập vào các diễn đàn có phần lưu mật khẩu khi đăng nhập, để làm điều đó ta cần phải sử dụng tới cookie, tại sao không sử dụng session vì khi đóng trình duyệt lại biến session sẽ mất, đó chỉ là một áp dụng nhỏ của cookie

    Lấy giá trị COOKIE

    Giống như SESSION các bạn sử dụng $_COOKIE để lấy giá trị Cookie, ta dùng cú pháp sau: $bien = $_COOKIE[‘cookie_name’]. 

    Ví dụ

    if (isset($_COOKIE['tendangnhap']))
    {
        echo $_COOKIE['tendangnhap'];
    }

    Xóa cookie

    Để xóa Cookie bạn chỉ việc thiết lập thời gian sống của nó sang quá trị âm nhiều hơn hoặc bằng giá trị sống lúc bạn thiết lập.

    setcookie ("TestCookie", "", time() - 3600);