Author Archives: anhtuan

Adminer và iframe

Nếu chúng ta cần nhúng adminer vào ứng dụng web của mình bằng cách gọi adminer từ iframe, cần biết rằng điều đó là rất khó.

Adminer nói rằng không cho chạy adminer trong iframe vì lý do bảo mật, nhưng lại cho phép một addon là frames dùng để hóa giải điều cấm adminer chạy trong iframe. Những tưởng đây là một tùy chọn, người dùng quyết định xài addon thì tự chịu trách nhiệm, nhưng không, có vấn đề bên trong.

Cho dù đóng gói adminer trong bao nhiêu lớp

<div><iframe src="https://domain.com/adminer" width="100%" height="100%"></iframe></div>

thì khi được nạp lên, adminer tìm cách sổ lồng, thoát khỏi iframe và div bao quanh, về top-level. Xem trong page source chúng ta thấy nội dung của trang adminer chèn trực tiếp trong trang chủ, không được bọc trong iframe và div như được thiết kế.

Continue reading

Comments Off on Adminer và iframe

Filed under Software

Định kỳ chạy script PHP

Có thế tạo crontab để định kỳ chạy script PHP, thí dụ mỗi ngày lúc nửa đêm

0 0 * * * /usr/bin/php /path/to/script.php

Tuy nhiên thường phải truyền tham đối cho script, thí dụ để bảo mật script chỉ chạy với một tham đối đặc biệt như thamdoidacbiet. Trong trường hợp này không thể truyền qua mảng $_GET hay $_POST mà truyền tham đối giống như với Bash script.

Continue reading

Comments Off on Định kỳ chạy script PHP

Filed under Software

Adminer – Quản lý CSDL trong 1 file

Đa số web designer dùng PHPmyadmin, nhưng Adminer với tính năng tuyệt hơn và không cần cài đặt vì chỉ bao gồm 1 file PHP.

Trong PiOS có thể dùng lệnh cài đặt

apt install adminer

Nhưng đó là phiên bản cài đặt, sau đó còn phải chỉnh sửa webserver và có thể gặp lỗi với Nginx.

Tải về file PHP duy nhất tại Adminer – Database management in a single PHP file và không phải cài đặt gì, chỉ cần bỏ vào thư mục www là xong. Tuyệt vời!

Comments Off on Adminer – Quản lý CSDL trong 1 file

Filed under Software

Lịch Âm – Lịch Dương

Mã nguồn về lịch Âm – lịch Dương trong bài này được phát triễn bởi một Việt kiều người Đức. Anh viết ứng dụng theo phong cách người Việt từ cách đọc ngày tháng đến số liệu thiên văn theo múi giờ GMT+7

Tôi đóng gói thành class và chỉnh sửa đôi chút. Có 2 hàm public là solar2lunar và lunar2solar dùng để đổi ngày Dương lịch sang Âm lich và ngược lại.

Một thí dụ là dùng script PHP để tính một ngày Âm Lịch trong tương lai:

// Ngày DL 30 ngày sau hôm nay
$d = explode('-', date('d-m-Y', strtotime('+30 day')));
// Đổi sang AL
$sl = new SolarLunar();
$AL = $sl->solar2lunar($d[0], $d[1], $d[2], 7.0);
echo $AL[0] . '/' . $AL[1] . '/' . $AL[2];

Trong đó 7.0 là múi giờ GMT.

Continue reading

Comments Off on Lịch Âm – Lịch Dương

Filed under Software

sed: if then else

Chúng ta cần dò trong tập tin một từ khóa, tạm gọi là SEARCH, nếu tìm thấy thì thay bằng REPLACE, còn không thì thêm REPLACE vào cuối file. Tình huống tương tự vậy gặp nhiều trong thực tế và có các ứng dụng chuyên dùng như postconf với tập tin main.cf, nhưng postconf chậm nên chúng ta thử dùng sed.

sed '/SEARCH/{h;s/SEARCH/REPLACE/};${x;/^$/{s//REPLACE/;H};x}' -i file
Continue reading

Comments Off on sed: if then else

Filed under Software

Script cài đặt Postfix chỉ gởi email

Giả sử chúng ta có website /ứng dụng web cần gởi email cho user (thí dụ như thông báo mật khẩu). Trong hầu hết trường hợp, user không cần trả lời cho email họ nhận được. Trong trường hợp này, chúng ta có thể cài đặt một SMTP server chỉ gởi mail trên web server bằng cách dùng Postfix, mặc dù cũng có những MTA khác như msmtp, smtp…

Ưu điểm của việc dùng Postfix là email người gởi có dạng user@mydomain.com. Ngoài ra vì Postfix không kiểm tra email người gởi có thuộc domain của mail server hay không, nên có thể gởi email nhân danh bất kỳ ai, thí dụ no-reply@apple.com. Tuy nhiên email mạo danh thường nằm trong thư mục spam của người nhận.

Continue reading

Comments Off on Script cài đặt Postfix chỉ gởi email

Filed under Software

diff so sánh file theo dòng

diff thay cho difference (sự sai khác). Lệnh này hiển thị sự sai khác của các file bằng cách so sánh theo dòng. Không giống như các lệnh tương tự như cmp và comm, nó cho thấy dòng nào của file khác với file đối chiếu.

Cú pháp:

diff [options] File1 File2 
Continue reading

Comments Off on diff so sánh file theo dòng

Filed under Software

Nâng cấp PHP 7.3 lên PHP 7.4 /8.0

Nếu đang dùng PHP 7.x thì nên nâng cấp đến phiên bản cuối là 7.4 hay nâng cấp lên 8.0. Quá trình này phải thực hiện thủ công theo nhu cầu người dùng vì lý do tương thích với ứng dụng web. Thí dụ như WordPress hiện chỉ tương thích với PHP 7.4, có thể phải chờ đến giữa năm 2022 mới có thể làm việc với PHP 8.0

Một đặc điểm của PHP là phiên bản sau nhanh hơn phiên bản trước.

Continue reading

Comments Off on Nâng cấp PHP 7.3 lên PHP 7.4 /8.0

Filed under Software

reCaptcha v3

reCaptcha v3 không yêu cầu người dùng “xem hình đoán chữ” hay làm gì đó để giúp phân biệt người và robot. Nó tự động thu thập các thao tác chuột, phím và nhiều thứ khác rồi chấm điểm. Điểm gần 0 thiên về robot, điểm gần 1 thiên về người.

reCaptcha v3 gắn một logo ở góc dưới bên phải của trang web có sử dụng dịch vụ này.

Continue reading

Comments Off on reCaptcha v3

Filed under Software

cfip.sh v.20210408

Cập nhật IP cho domain, subdomain quản lý bới cloudflare.com

Cú pháp: cfip [-f] [ip] [domain [@|*|sub[,…]]]
    -f : thử cập nhật dù theo ghi chép ip chưa thay đổi
    ip : cập nhật theo ip này
   sub : thay cho sub.domain
     @ : thay cho domain
     * : tất cả subdomain, trừ @

Các giá trị mặc định khi chỉ gọi tắt cfip domain @,\* trong đó domain được trích ra rừ $(hostname) hoặc @,\* nếu có chỉ định domain như cfip domain

Script cài đặt jq nếu chưa có, jq là con dao Thụy Sĩ để xử lý các đối tượng Json.

Continue reading

Comments Off on cfip.sh v.20210408

Filed under Software