Thứ Sáu, 24 tháng 6, 2016

Session trong php

- Biến session dùng để lưu giá trị của biến vào trình duyệt web và biến này chỉ bị biến mất khi bạn thoát khỏi trình duyệt (hoặc khi bạn viết code để hủy biến).Sau khi tạo biến session thì biến session này vẫn tồn tại nếu như bạn truy cập 1 trang web khác , chỉ là nếu muốn sử dụng biến này thì phải khai báo session_start();

- Ví dụ thế này : mình tạo thư mục 'vi_du' trong thư mục 'htdocs' rồi tạo file '1.php' ở trong thư mục 'vi_du' với nội dung sau :

<?php
    session_start();
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Tạo session abc</title>
    </head>
    <body>
        <?php
            $_SESSION['abc']="123";
        ?>
    </body>
</html>

- Đoạn code trên là tạo biến session 'abc' có giá trị là '123'.Lưu ý là nếu muồn dùng session thì phải viết dòng code session_start(); vào đầu file muốn dùng session (nếu không sẽ không tạo được session)

- Sau đó mình tạo file '2.php' trong thư mục 'vi_du' với nội dung sau :

<?php
    session_start();
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Kiểm tra session</title>
    </head>
    <body>
        <?php
            if(isset($_SESSION['abc']))
            {
                echo "Tồn tại biến session 'abc'";
                echo "<br>";
                echo "Giá trị của biến session 'abc' là <b>".$_SESSION['abc']."</b>";
            }
            else
            {
                echo "Không tồn tại biến session 'abc' , bạn chưa khai báo biến session 'abc'";
            }
        ?>
    </body>
</html>

- Đoạn code trên sẽ kiểm tra biến session 'abc' có tồn tại hay không.Nếu có tồn tại thì sẽ xuất ra trang web báo là có tồn tại biến session 'abc'.Ngược lại nếu không tồn tại biến session 'abc'  thì sẽ xuất ra dòng chữ "Không tồn tại biến session 'abc' , bạn chưa khai báo biến session 'abc'"

- Hàm isset là dùng để xác định 1 biến nào đó có tồn tại hay không.Ở đây là kiểm tra sự tồn tại của biến session 'abc'

- Sau đó mình truy cập vào file '2.php' ( đường dẫn mình truy cập là 'http://localhost/vi_du/2.php' ) thì nhận được kết quả là chưa tạo biến session 'abc' (vì mình không tạo biến session 'abc' trong file '2.php' )

- Nhưng nếu mình truy cập vào file '1.php'  ( đường dẫn mình truy cập là 'http://localhost/vi_du/1.php' ) trước rồi mới truy cập vào file '2.php' thì nhận được kết quả sau :


Tồn tại biến session 'abc'
Giá trị của biến session 'abc' là 123


- Nghĩa là nhận được kết quả là có tồn tại biến session 'abc' và xuất giá trị của biến session này ra ngoài web

- Session trong php ứng dụng được vào chức năng đăng ký , đăng nhập , giỏ hàng ...