09/10/2018, 17:58

Thắc mắc khi sử dụng session trong PHP

Khi mình dùng hàm session_register trong file php được lưu với encoding utf-8 thì liền bị báo lỗi Cannot send session cookie - headers already sent by, còn khi lưu với encoding unicode thì không tìm thấy session mới đăng ký. Xin các bạn giúp đỡ.
nguyenthu viết 20:05 ngày 09/10/2018
Bạn taplamweb,
Mình cũng xài session_register trong file unicode utf-8 nhưng không bị lỗi gì cả.
Bạn hãy post chương-trình lên thì mới tìm được là lỗi ở đâu.
Thân
dtt_vn viết 20:14 ngày 09/10/2018
dùng season với lại tự kiểm tra mỗi lần ta load trang php có gì khác nhau không? thí dụ: nếu ta dùng season để login-out và dùng phương pháp test để kiểm tra mỗi khi trang được load lênthì cái nào tiện hơn
taplamweb viết 20:14 ngày 09/10/2018
Chương trình đơn giản thôi:
<?php
$name = "taplamweb";
session_register("name");
?>
được lưu dưới dạng UTF-8
nguyenthu viết 20:02 ngày 09/10/2018
Bạn taplamweb,
1) Bạn cần có ở đầu trang :
<?php
session_start();
?>
2) Sau đó, code của bạn session_register() có thể đặt ở đâu cũng được.
3) Lưu dưới charset=utf-8 cũng được.
Chúc thành công.
Thân
FrzzMan viết 20:00 ngày 09/10/2018
Mấy bác toàn trả lời đi đâu không lằng nhằng quá... cái lỗi chính thì không thấy nói đến...

Lỗi ở đây chả liên quan gì tới session hay cookie, cũng chả liên quan tới UTF-8 hay cái gì khác mà là liên quan tới thằng Micro$h!t.

Vào command line, type lệnh này:

Code:
edit filename.ext
Thấy mấy cái byte ở trước cái <?php không? Xóa nó đi, chạy OK liền, rồi bước tiếp theo là lên net download cái EmEditor về, edit file bằng cái đó rồi khi save file dưới dạng khác default, untick cái tùy chọn thêm 3 cái byte định dạng đi là xong. Rồi từ giờ về sau, đừng có dùng mấy cái editor của Micro$h!t nữa.
taplamweb viết 20:09 ngày 09/10/2018
To nguyenthu: khi mình lưu file dưới dạng ANSI thì dùng hàm session không có vấn đề gì, nhưng khi lưu dưới dạng UTF-8 thì ngay cả hàm session_start() cũng bị lỗi. Nhân tiện xin hỏi bạn đang dùng PHP mấy vậy, bạn đang dùng host nào mà không bị lỗi đó.
To FrzzMan: Mình không dùng editor của Micro$h!t gì cả.
nguyenthu viết 20:03 ngày 09/10/2018
Theo như bạn nói thì chính Editor của bạn đã lưu sai. Mình xài PHP 4.***, và dùng WebExpert, có dùng EmEditor.
Mà mình hỏi bạn, Server của bạn tự cài lấy ? Nếu vậy phải xem Server của hỗ trợ Unicode không đã. Bạn thử trước trên máy của bạn, tại localhost trước.
Có một số Editor như WebExpert chỉ lưu file dưới dạng Unicode tốt cho các file có đuôi là HTML, do đó khi dùng WebExpert, tôi phải sửa đuôi lại bằng Explorer hay dưới DOS từ đuôi HTML ra PHP.
Thử lại đi, nếu không được thì nên cho biết bạn dùng Editor nào.
Hy vọng bạn sẽ thành công.
Thân
jiSh@n viết 20:00 ngày 09/10/2018
Soạn file php Unicode bằng Notepad sẽ gặp lỗi này. DW MX thỉnh thỏang cũng gặp (nhất là khi sửa các file đã được soạn bằng notepad), chỉ cần sử dụng các editor ko hỗ trợ Unicode hoặc dùng hex editor sửa là được xóa 3 byte định dạng ở đầu file).
romeo viết 20:04 ngày 09/10/2018
Dùng EMEditor có thể coi được. Nếu không thấy cái Signature này thì vào Tools/Conf/ chọn Detech Unicode Signature (BOM).
Thêm nữa vào mục Saving bỏ chọn Add a Unicode Signature (BOM) vào đầu file.
Bài liên quan
0