가상 포인트 용 파일을 구입할 수있는 웹 사이트를 만들고 있습니다. 사용자가 구매하지 않고 파일을 다운로드 할 수있게하고 싶지 않아 숨길 필요가 있습니다. 모든 파일을 호스트가 아닌 다른 사람의 허락없이 폴더에 넣습니다. 문제는 누군가가 파일을 구입하여 다운로드하려고하는 경우입니다.PHP로 안전한 파일 다운로드, 허락없이 사용자 거부
나는 파일 getter를 만들기로 결정했다. 그것은 사용자의 권한을 확인한 다음 파일 내용을 출력 할 것이다. 지금까지 내 코드 : 사용자가이 작업을 수행 할 수있는 권한이 이제 임 확인
<?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
?>
, phpScript이 파일의 내용을 작성하고 사용자가 다운로드 할 수 appropiate 헤더를 보내야합니다.
파일을 바이트 단위로 읽고 인쇄하는 방법과 파일을 다운로드 할 수있게하기 위해 헤더()에 무엇을 써야합니까 (내용을 복사 할 필요가 없도록).
어쩌면 이것이 최선의 방법은 아니지만 잠시 생각한 것 중에 가장 좋은 방법이었을 것입니다.
고맙습니다.
readfile php doc에서. 이것에 대한 수백만 가지 설명이 있습니다. – arkascha
그곳에있는 동안 'SQL injection'에 대한 인터넷 검색을 시도해보십시오. – symcbean