Tôi đang tạo trang web nơi bạn có thể mua tệp cho các điểm ảo và sau đó tải xuống chúng. Tôi không muốn cho phép người dùng tải xuống các tệp mà không mua nó, vì vậy tôi phải ẩn chúng. Tôi đặt tất cả các tập tin trong một thư mục mà không có sự cho phép cho bất cứ ai ngoại trừ máy chủ, vấn đề là khi ai đó mua một tập tin và muốn tải nó xuống.Tải xuống tệp an toàn bằng PHP, từ chối người dùng mà không được phép
Tôi quyết định tạo một tệp getter, sẽ kiểm tra quyền của người dùng và sau đó in ra nội dung tệp. Mã của tôi cho đến nay:
<?php
require_once('content/requirements.php'); //mysql connections
secure(1); //disconnect unlogged users
if (!isset($_GET['id'])) //if no file id provided
die();
$fid=mysql_real_escape_string($_GET['id']); //file id
$query="SELECT * FROM files WHERE user_id = "$_SESSION['user_id']." AND file_id = ".$id;
$q=mysql_query($query);
if (mysql_num_rows($q)!=1) //if no permission for file or multipe files returned
die();
$file=mysql_fetch_array($q); //file id
$sub=mysql_fetch_array(mysql_query("SELECT * FROM sub WHERE id = ".$file['file_id'])); //payment id
?>
Bây giờ khi Im chắc chắn người dùng sẽ được ủy quyền để làm điều này, PHPScript nên viết nội dung tập tin và gửi cho thích hợp tiêu đề để cho phép người dùng tải về nó.
Cách đọc tệp byte-byte và in và tôi nên viết gì trong tiêu đề() để làm cho tệp có thể tải xuống (vì vậy bạn không phải sao chép nội dung của tệp).
Có lẽ đây không phải là cách tốt nhất để làm điều này, nhưng đó là điều tốt nhất tôi nghĩ đến trong một thời gian.
Thanx để được trợ giúp.
Sử dụng google. Có hàng triệu lời giải thích về điều này. – arkascha
Hãy thử googling cho 'SQL injection' trong khi bạn đang ở đó. – symcbean