10/10/2018, 09:52

Thiết lập cookies trong PHP

Em đã biết cách tạo cookies với hàm setcookie() nhưng mà có điều cái hàm này hơi bất tiện, phải đặt ở đầu file trước khi in bất cứ cái gì ra màn hình.

không biết mấy bác siêu pro có cách nào để có thể dễ dàng, lcu1 nà muốn set cookies thì set không mấy bác!?
thuyduongcd viết 12:03 ngày 10/10/2018
cookie giống như thằng gác cổng. Có ai mang thằng gác cổng đặt trong nhà bếp không?
phuongthom viết 12:03 ngày 10/10/2018
cookie thì phải đặt trc' khi in ra, vì thế nếu 1 file php của bạn ko echo,print, ko html thì cookie đặt ở đâu cũng đc, chung chung là như thế

cookie khi mới set thì ko sử dụng được luôn, phải reload 1 lần nữa thì mới dùng được $_COOKIE['name'].

vì thế setcookie thường đặt ở 1 file riêng biệt, khi cần setcookie thì redirect sang file đó rồi lại quay lại trang đang duyệt

giống như các forum hay có file login.php đó

nếu ko muốn rediect sang file login thì có thể dùng ajax, cũng như nhau cả thôi. chả qua ajax thì đỡ đc 2 lần nhìn trình duyệt nó chuyển trang
nvcnvn viết 11:59 ngày 10/10/2018
Uhm, đã rỏ, thanks các bác, nhưng xin đính chính lại một chút xíu.
Không phải là có html là phải để lên đầu, mà là nó phải đặt lên trước mọi thứ trước khi có bất kỳ thứ gì được gửi tới trình duyệt.
Ví dụ một hàm header(), hay echo() bất cứ cái gì ra, sau đó tới hàm setcookie() là có lỗi ngay!
s.code viết 12:00 ngày 10/10/2018
Đúng rồi. Chắc bác này mới code web nên sẽ có trường hợp dùng header(), hay echo() trước khi setCookie.

Bạn nên tư duy 1 chút. THường là tất cả trang web chỉ chỉ có 1 chỗ duy nhất echo ra kết quả cuối cùng.

Ví dụ sử lý load hết top, left, right, main, footer nhưng chưa xuất ra mà lưu trữ vào 1 biến. Sau đó gộp thành 1 rồi mới xuất ra.

Nên tham khảo dùng các thư viện sử lý template. ==> toàn bộ phần code chỉ sử lý mà ko liên quan đến đoạn xuất ra.
thuankkk viết 11:55 ngày 10/10/2018
Được gửi bởi nvcnvn
Em đã biết cách tạo cookies với hàm setcookie() nhưng mà có điều cái hàm này hơi bất tiện, phải đặt ở đầu file trước khi in bất cứ cái gì ra màn hình.

không biết mấy bác siêu pro có cách nào để có thể dễ dàng, lcu1 nà muốn set cookies thì set không mấy bác!?
1. http://vn.php.net/manual/en/book.outcontrol.php
2. http://vn.php.net/manual/en/book.session.php

setcookie(var, val, ...) -> header('Set-Cookie: var=val; [path=...; [expires=...; [domain=...]]]'); -> phải gọi setcookie trước khi send output.
Bài liên quan
0