10/10/2018, 10:43

Giải pháp cho download file với password

Gửi anh em dd. Mình có 1 vấn đề như sau:

có 1 vùng với các link download. Mình muốn rằng nếu người ta muốn vào đc vùng này phải login vào (đương nhiên là đã tạo cho họ 1 account).

Những ai đã login vào thì có thể downlaod đc các link ở trong đó.

Nhưng thêm 1 vấn đề nữa là khi người ta download thì họ có đường link sẵn. Họ đem link đó cho ai đó không có account và dán vài 1 chương trình hỗ trợ download nào đó (IDM chẳng hạn) thì nó vẫn bắt buộc pahỉ có username và pass thì mới download đc file.

Ví dụ như link này: http://www.foundernews.de/pr/pott-report-41.zip

Bạn nào có giải pháp hoặc biết tài liệu ở đâu xin chỉ giáo.
snoob viết 12:56 ngày 10/10/2018
http://www.developertutorials.com/tu...n-050525-1154/ đọc đi
thuyduongcd viết 12:53 ngày 10/10/2018
Gom tất cả file download vào 1 folder
Dùng .htaccess để tất cả request đến thư mục này đều chuyển hướng đến file download.php
File download.php sẽ check session xem đã đăng nhập chưa. Nếu chưa thì redirect tới phần đăng nhập. Đăng nhập rồi thì trả về file cần download
nnanh01 viết 12:59 ngày 10/10/2018
@snoob:
Ở trang web bạn đưa, chỉ hướng dẫn làm login thôi, không phải download file như ý của mình.

Bạn thuyduongcd đã hiểu đúng ý mình.

@thuyduongcd:

Cảm ơn bạn, bạn có thể giúp mình viết file htaccess đó đc không? Mình rất gà vụ này.

Như thế này có đc không?
Code:
Redirect permanent /download_folder http://www.example.com/download.php
Nhưng mình có 1 suy nghĩ (chưa thử) là khi đã login và trả về thư mục download như vậy có bị trả lại file download.php nữa hay không? Tức là nó sẽ bị xoay vòng vô hạn ý??
Thanks.
phaocuusinh viết 12:52 ngày 10/10/2018
Bạn không cần phải làm bước này, rất đơn giản.

Trong Cpanel đã hỗ trợ việc này từ rất lâu.

Đầu tiên bạn tạo 1 thư mục chứa các file muốn cho phép download. Tạm gọi là thư mục ABC

Bạn sử dụng chức năng "Password Protected Directories" , sau đó chọn thư mục ABC như đã nói ở trên.

Bước đầu tiên là bạn Stick Enable để kích hoạt bảo vệ thư mục.

Bước thứ hai là bạn có thể tạo lần lượt 1 hoặc nhiều User cho phép truy cập thư mục này.

Bắt đầu từ khi hoàn tất tạo User, thì khi có bất kỳ truy cập nào qua giao thức HTTP bình thường đều phải xác thực quyền truy cập bằng User.

Nếu bạn không sử dụng Cpanel thì có thể lên Google search từ khóa "Creat Password HTACCESS"
nnanh01 viết 12:55 ngày 10/10/2018
Có lẽ mình cần mô tả chi tiết hơn yêu cầu của mình để các bạn có thể hiểu rõ hơn 1 chút.

1./ Có 1 trang admin dùng để tạo user account cho khách hàng bằng cách khách hàng sẽ đăng ký account, sau đó account đc active từ mail confirm của khách hàng.(Vì thế nên không thể dùng tạo user bằng tay trong cpanel như bạn phaocuusinh nói đc).

2./ KH khi có account sẽ login đc vào 1 page chứa các link download.

3./ Nếu đã có link download và KH paste thẳng vào trình duyệt hoặc IDM thì vẫn bắt buộc login.

4./ Ví dụ như link này: http://www.foundernews.de/pr/pott-report-41.zip
thuyduongcd viết 12:52 ngày 10/10/2018
Tạo thư mục chứa các tập tin tài nguyên tên files
Code .htaccess
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^files/([^/]+).zip /download.php?file=$1 [NC]
Tất cả các request đến tập tin .zip trong thư mục files sẽ được chuyển sang file download.php
VD: http://domain.name/files/my-file.zip
=> http://domain.name/download.php?file=my-file

Khi đó file download.php sẽ xử lý:
Code:
$file=$_GET['file'].".zip";
if (!isset($_SESSION['username'])){  // nếu chưa đăng nhập
    header ("Location: http://domain.name/login.php?redirect=http://domain.name/$file.zip"); //redirect tới trang login, login xong sẽ trỏ về file download
}else{ // đã login
//đọc nội dung file và dùng header để trả về file cho client
}
nnanh01 viết 12:45 ngày 10/10/2018
Mình đang thử, có gì sẽ thỉnh giáo các bác tiếp.

Cảm ơn các bác.

Cảm ơn bạn thuyduongcd
ngthanhchien viết 12:51 ngày 10/10/2018
Mình đã làm theo hướng dẫn của các bạn và chương trình đã thực hiện đúng như yêu cầu ban đầu. Mình chia sẻ cùng mọi người tham khảo.
link download: http://www.4shared.com/file/hdAgPQ_K/downloadfile.html
Bài liên quan
0