PHP Fatal error

Trong 1 dự án gặp đến 2 lỗi có thể nói là nghiêm trọng :((

  1. Cannot use object of type __PHP_Incomplete_Class as array
  2. 406 Not Acceptable

Lỗi thứ nhất “thường” xảy ra ở khu vực tương tự như sau:

   $user = isset($_SESSION['user'])?$_SESSION['user']:'';
   if ($user['user_id']<0 || $user['user_id'] == '')
   {
       _redirect('user/login');
   }
   return true;

Phần này (backend) tưởng chừng chả có lỗi gì (tôi làm phần frontend, 1 anh nữa làm phần backend) nhưng thật ra lỗi be bét bởi:

  1. Khi session user chưa được khởi tạo, biến $user sẽ = chuỗi trống
  2. Khi $user là chuỗi rỗng thì $user làm gì có phần tử user_id

Thêm vào nữa, đó là tên biến với tên session bị trùng nhau 🙁 Nếu chạy trên môi trường dev (XAMPP) thì không vấn đề gì xảy ra, nhưng chạy trên môi trường LAMPP (đặc biệt là trên server của Nhân Hòa) thì sẽ bị lỗi Cannot use object of type __PHP_Incomplete_Class as array

Thứ hai, lỗi 406 Not Acceptable. Không hiểu sao khi vào phần cấu hình của website, chỉ có 3 field dạng Wysiwyg editor (FCKeditor), cứ ấn save thì chết (hiện ra trang trắng xóa). Sau khi xem response code, thấy báo 406 mà chả hiểu tại sao lại bị. Toàn những ký tự có thể nói là hợp lệ vậy mà server nó vẫn từ chối là sao? Bí quá, debug bằng cách...test từng editor 1 :"> và nhận thấy rằng nó chết ở editor có chứa ảnh upload lên với đường dẫn dạng như sau: /home/xxx/public_html/uploads. Hình như SA của Nhân Hòa sợ local attack hay sao ấy mà cấm các truy cập kiểu này??? Không biết nữa, chỉ biết là khi tôi thay cái path đó bằng url path thì mọi thứ okie. Đến mệt

Posted in PHP
It's me ;-)

Nam Khanh Do

Khanh is a full stack web developer with over 10 years of experience developing for the web. You can reach him on Twitter, like him on Facebook and connect with him on LinkedIn.

Leave a Reply

Your email address will not be published. Required fields are marked *