Categories
PHP Security

Suhosin, Cookie và bug

suhosin-cookie-bug

Dạo này tự nhiên thấy cái tính năng toggle grid view/table view (http://reader.vn/book.php) tự nhiên không chạy, vô xem code thì thấy mình hoàn toàn không động chạm chức năng này từ dạo ấy, chả hiểu sao nó không chạy, thế là tối nay quyết tâm debug xem nó bị gì.

Categories
PHP

APC và Segmentation Fault

apc-segmentation-fault

Số là đang cần cài APC cho con VPS Kloxo cùi bắp để test. Theo như quy trình bình thường thì mình cũng cài đặt xong ông thần APC lên con VPS này (mặc dù có gặp vài trắc trở). Những tưởng cài APC xong thì mình tha hồ làm việc như bình thường nhưng …bùm..truy cập trang web thì bị một hiện tượng rất là khó hiểu từ trước đến giờ, đó là ra trang lỗi trên Chrome và trên Firefox thì cho download luôn file .php mà không có nội dung.

Categories
PHP Web Programming

phpmailer gởi mail SMTP bằng Gmail/Google Apps


Hôm qua chiến hữu có liên lạc nhờ fix cái vụ mail SMTP gởi thông qua tài khoản email host trên Google app, sau một hồi mò mẫm thì ra vấn đề không phải trong code triển khai của mình mà là do bug trong class phpmailer cũ, nên cách giải quyết đơn giản là download phiên bản mới (phpmailer 5.1).

Thấy cái này có lẽ nhiều đồng chí gặp nên post lên để chia sẽ những gì đã làm. Số là script gởi mail của phpmailer sử dụng SMTP thì các bạn search trên mạng cũng khá đầy, nhưng post lại đây cho bạn nào quan tâm.

Categories
PHP Web Programming

PHP :: readfile() và Output Buffering

Hôm nay được một đồng nghiệp report một cái bug thật kỳ quặc…hem biết bà con nào đã bị dính chưa. Số là cái source PHP của mình có một trang cho phép download 1 file bằng cách sử dụng hàm readfile($filename) để tải file về…Cái source lúc đưa ra chạy rất OK và không có trục trặc gì cả..

Cho đến hôm nay, đồng nghiệp này nói là không download được file và download bị lỗi, mình cũng thật ngạc nhiên, chạy vô source thì chẳng có gì thay đổi. Hơi ngạc nhiên, mình debug 1 xíu thì thấy vấn đề ở chỗ hàm readfile(). Sau một hồi điều tra trên http://php.net/readfile, thì thấy có một ghi chú là cái hàm này có trục trặc khi sử dụng kèm với Output Buffering.

Tới đây mình mới chợt nhớ ra là cách đây nửa tháng mình có triển khai nén sử dụng Output Buffering để tiết kiệm Bandwidth nên thành ra bây giờ nó bị bug này.

Cách giải quyết: cũng khá đơn giản, chỉ cần gọi hàm “ob_end_clean()” trước hàm “readfile()” là mọi việc OK.

Mình note lại đây, hi vọng có bạn nào gặp vấn đề tương tự sẽ biết cách giải quyết. Chúc vui.