Bitrix는 기사에서 파일 다운로드 카운터를 생성합니다. 다운로드 카운터 설치 - WordPress용 플러그인 개요. Kama 클릭 카운터 플러그인

오랫동안 PHP와 MySQL에 대한 수업이 없었습니다. 오늘 우리는 간단하지만 효과적인 다운로드 카운터를 만들 것입니다.

각 파일에는 데이터베이스 테이블의 행에 항목이 있습니다. 동일한 테이블에 파일 다운로드 횟수가 저장됩니다. PHP 데이터베이스를 업데이트합니다 MySQL 사용자를 필요한 파일로 리디렉션합니다.

파일의 다운로드 수를 추적하려면 해당 파일을 폴더에 넣어야 합니다.파일 특별한 URL을 사용하여 액세스하십시오.

1 단계 - XHTML

첫 번째 단계는 스크립트에 대한 마크업을 만드는 것입니다. 매우 간단합니다. div 파일 관리자, 목록의 각 요소가 파일을 담당하는 정렬되지 않은 목록을 포함합니다.

다운로드를 추적하려는 파일은 폴더에 있습니다.파일 스크립트의 루트 폴더에 있습니다. PHP 그런 다음 모든 파일을 반복하고 각 파일을 목록 항목으로 추가합니다() 정렬되지 않은 목록으로.

데모.php


  • 사진촬영-1.0.zip 0 다운로드

속성헥사 링크는 파일 이름을 매개변수로다운로드.php. 여기에서 다운로드 추적이 시작됩니다.

모든 것을 같은 방식으로 표시할 필요는 없습니다.다운로드.php 귀하의 페이지에 모든 다운로드가 통과되지 않습니다.

2 단계 - CSS

마크 업 후 디자인으로 넘어 갑시다. CSS 아래 규칙이 적용됩니다. ID가 있는 div 파일 관리자(# 기호), 페이지에서 한 번만 발생하고 클래스 이름으로 나머지 요소에 발생하기 때문입니다.

스타일.css

#file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; )
ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* 가리키면 녹색 다운로드 텍스트 표시: */ display:block; ) span.download- label( background-color:#64B126; border:1px solid #4E9416; color:white; display:none; font-size:10px; padding:2px 4px; position:absolute; right:8px; text-decoration:none ; 텍스트 -shadow:0 0 1px #315D0D; top:6px; /* CSS3 둥근 모서리 */
-moz-border-radius:3px; -webkit-border-radius:3px; 테두리 반경:3px; ) span.download-count( color:#999; font-size:10px; padding:3px 5px; position:absolute; text-decoration:none; )

3단계 -PHP

앞에서 말했듯이 PHP는 파일 폴더에서 파일을 찾고 각 파일을 정렬되지 않은 목록의 목록 항목으로 나열합니다. 어떻게 진행되는지 살펴보겠습니다.

데모.php- 윗부분

// 정답게 소곤 거리다 보고 오류: error_reporting(E_ALL^E_NOTICE); // : "connect.php"가 필요합니다. $extension=""; $files_array = 배열(); /* 폴더를 열고 모든 파일을 살펴보십시오.: */ $dir_handle = @opendir($directory) 또는 die("파일 디렉토리에 오류가 있습니다!"); while ($file = readdir($dir_handle)) ( /* 시스템 파일 건너뛰기: */ if($file(0)==".") 계속; /* 끝() 배열의 마지막 요소를 반환 함수에 의해 생성폭발(): */ $extension = strtolower(end(explode(".",$file))); /* php 파일 건너뛰기 : */ if($extension == "php") continue; $files_array=$파일; ) /* 파일을 알파벳순으로 정렬*/ 정렬($files_array,SORT_STRING); $file_downloads=배열(); $result = mysql_query("download_manager에서 * 선택"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* 어레이 키 $file_downloads 파일의 이름이 될 것입니다, 다운로드 횟수가 포함됩니다.: */ $file_downloads[$row["파일 이름"]]=$row["다운로드"]; )

mysql_query()를 사용하여 download_manager 테이블에서 모든 행을 선택하고 나중에 파일 이름을 다운로드 수의 키로 사용하여 $file_downloads 배열에 추가하는 방법에 주목하십시오. 따라서 나중에 코드에서 $file_downloads["archive.zip"]을 작성하고 다운로드 수를 인쇄할 수 있습니다.

아래에서 목록의 요소를 생성하는 코드를 볼 수 있습니다.

데모.php- 중간 부분

Foreach($files_array as $key=>$val) ( 에코 "

  • ".$발." ".(int)$file_downloads[$val]." 다운로드
  • "; }

    모든 것은 $files_array 배열의 foreach 루프로 간단하게 수행됩니다. 그 후 echo를 사용하여 모든 것이 출력됩니다.

    이제 파일 추적이 어떻게 작동하는지 자세히 살펴보겠습니다.

    다운로드.php

    // 에러 체크 : error_reporting(E_ALL^E_NOTICE); // db 연결 파일 활성화: 요구("connect.php"); if(!$_GET["파일"]) error("매개변수가 없습니다!"); if($_GET["file"](0)==".") error("잘못된 파일!"); if(file_exists($directory."/".$_GET["file"])) ( /* 만약 방문자는 검색 봇이 아닙니다., 카운트 다운로드: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("위치: ".$directory."/".$_GET["file"]); 출구; ) else error("이 파일은 존재하지 않습니다!"); /* 함수 도우미: */ function error($str) ( die($str); ) function is_bot() ( /* 로봇의 이 체크 기능*/ $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK ", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler" ,"TweetmemeBot", "Butterfly", "Twitturls", "Me.dium", "Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // 봇임 ) return false; // 봇 아님)

    방문자가 사람인지 검색 엔진 로봇인지 확인하는 것이 중요합니다. 로봇은 훌륭하지만 통계를 왜곡하지 않도록 합시다. 그렇기 때문에 데이터베이스의 행은 is_bot() 확인 후에만 업데이트됩니다.

    4단계 -MySQL

    마지막 단계에서 언급했듯이 다운로드 수는 download_manager 테이블에 행으로 저장됩니다. 먼저 이 쿼리가 작동하는 방식을 설명하겠습니다.

    다운로드.php

    중복 키 업데이트에서 download_manager SET 파일 이름="filename.doc"에 삽입 downloads=downloads+1

    그것은 MySQL에게 download_manager 테이블에 새 행을 삽입하고 파일 이름 행 필드를 다운로드를 위해 호출된 파일의 값으로 설정하도록 지시합니다. 단, 파일명 필드는 테이블에서 고유 인덱스로 지정된다. 즉, 각 행은 한 번만 삽입할 수 있으며 그렇지 않으면 중복 키 오류가 발생합니다.

    이것은 쿼리의 두 번째 부분이 작동하는 곳입니다. ON DUPLICATE KEY UPDATE는 파일이 데이터베이스에 이미 존재하는 경우 다운로드 열에 하나를 추가하도록 MySQL에 지시합니다.

    따라서 첫 번째 다운로드 중에 새 파일이 자동으로 데이터베이스에 추가됩니다.

    5단계 - jQuery

    실시간 추적을 하기 위해서는 매번 다운로드 후 파일명 옆에 있는 카운터를 업데이트 하는 것이 좋을 것입니다.

    jQuery를 사용하여 이 작업을 수행합니다.

    script.js

    $(문서).ready(함수()( /* 페이지가 로드된 후 코드가 실행됩니다.*/ $("ul.manager a").click(function()( var countSpan = $(".download-count",this); countSpan.text(parseInt(countSpan.text())+1); ) ); ));

    파일로 연결되는 링크에 클릭 핸들러를 할당하고 클릭할 때마다 값을 추가합니다.

    6단계 -htaccess

    해야 할 일이 하나 더 있습니다. Download.php는 매개변수로 전달된 요청된 파일로 사용자를 리디렉션합니다. 그러나 브라우저가 일부 유형의 파일을 직접 열려고 시도한다는 사실을 눈치채셨을 것입니다. 또한 다운로드를 시작해야 합니다. 이것은 파일 폴더에 있는 .htacess 파일 내부의 몇 줄로 수행할 수 있습니다.

    ForceType 애플리케이션/옥텟 스트림

    이제 카운터가 완전히 준비되었습니다!

    결론

    데모가 작동하려면 MySQL 데이터베이스에서 download_manager 테이블을 다시 생성해야 합니다. 소스에서 필요한 SQL 코드를 찾을 수 있습니다.

    그런 다음 configuration.php 파일에서 데이터베이스에 연결하기 위한 데이터를 추가하십시오.

    // "매직 인용" 모드 변환 제거 $_POST["content"] = adslashes($_POST["content"]);

    // 파일 내용 덮어쓰기 file_put_contents($_POST["filename"], "$_POST");

    4.9. 파일 다운로드 카운터

    모든 파일 다운로드 카운터의 작동은 방문자에게 파일 자체가 다운로드 링크로 제공되는 것이 아니라 다운로드를 계산하고 파일을 사용자의 브라우저로 전송하는 스크립트에 대한 링크가 제공된다는 사실을 기반으로 합니다.

    파일을 다운로드하는 링크가 현재 페이지에 대한 링크가 되도록 카운터를 구축하고 파일 이름을 매개 변수로 전달합니다(예: index.php?down=archive.zip ). 스크립트는 down 매개변수가 전달되었는지 확인하고 전달된 경우 filecount.txt 파일에 아카이브 다운로드를 기록합니다. 페이지가 다시 로드되면 브라우저 창에 표시하기 위해 각 아카이브의 카운터 값이 파일에서 추출됩니다. 다운로드할 파일의 전송은 다운로드한 아카이브의 경로를 나타내는 HTTP 헤더 위치를 방문자에게 전송하여 수행됩니다. 파일 다운로드 카운터 스크립트는 목록 4-31과 같습니다.

    목록 4.31. 파일 다운로드 카운터

    // 오류 처리 수준 설정 error_reporting(E_ALL & ~E_NOTICE);

    // 배열에 파일 이름 등록

    $file_name = array("archive1.zip","archive2.zip","archive3.zip");

    // 통계가 저장된 파일의 이름 $countname = "filecount.txt";

    // 파일이 존재한다면,

    // if(file_exists($countname)) 배열로 현재 통계 읽기

    // 카운터의 내용 가져오기

    $content = file_get_contents($countname);

    // 배열의 압축을 풉니다.

    $count = unserialize($content);

    // 해당 파일이 없으면 생성

    // 통계 재설정

    // $count 배열을 0 값으로 채웁니다 foreach($file_name as $file)

    $카운트[$파일] = 0;

    // 배열을 패킹하고 카운터에 넣습니다. file_put_contents($countname, serialize($count));

    // down 매개변수의 값이 전달되었는지 확인

    // GET 메소드를 통해

    if(isset($_GET["다운"]))

    // $_GET["down"] 매개변수의 값이 포함되어 있는지 확인

    // $file_name 배열로

    if(in_array($_GET["down"],$file_name))

    // 이 파일을 다운로드한 사실을 등록합니다.

    // 키로 카운터 값을 높입니다.

    // $_GET["down"] 하나씩

    $count[$_GET["다운"]]++;

    // 카운터 파일 덮어쓰기 file_put_contents($countname, serialize($count));

    echo "파일 $file이 ".intval($count[$file])에 의해 로드되었습니다."
    ";

    업로드된 파일의 이름은 $file_name 배열에 저장되며 새 아카이브를 추가하면 시스템에 자동으로 등록됩니다. 어레이의 사전 등록은 여러 가지 이유로 필요합니다. 먼저 down 매개 변수를 통해 배열 이름을 수락할 때 업로드가 허용된 파일에 포함되어 있는지 확인해야 합니다. 둘째, 배열에서 파일 이름을 처리하는 것이 훨씬 더 편리합니다. 그래서 파일 다운로드 횟수를 저장하는 $count 배열은 시스템에 등록된 파일의 배열을 기반으로 자동으로 생성되며,

    serialize() 함수를 사용하여 배열을 문자열로 압축한 다음 unserialize() 함수를 사용하여 다시 배열로 압축을 푸는 것이 편리합니다.

    메모

    주요 콘텐츠가 전송되기 전에 모든 HTTP 헤더를 전송해야 한다는 점을 기억하는 것이 중요합니다. 그렇지 않으면 전송되지 않으며 PHP 인터프리터는 "경고: 헤더 정보를 수정할 수 없습니다. 헤더가 이미 전송되었습니다."라는 경고를 표시합니다.

    (경고: 헤더 정보는 수정할 수 없습니다. 헤더는 이미 전송되었습니다.) 이것은 HTTP 프로토콜에 의해 결정됩니다. 헤더가 먼저 전송된 다음 문서의 내용이 전송되므로 브라우저 창에 대한 모든 출력은 헤더 전송의 끝과 문서 본문 전송의 시작으로 인식됩니다. 헤더가 전송되기 전에 브라우저 창으로 출력하는 것이 불가피한 경우 출력 제어 기능에 의지하여 모든 출력을 버퍼링하고 스크립트의 끝에서 전송해야 합니다.

    목록 4.31에서 볼 수 있듯이 스크립트는 filecount.txt가 누락된 첫 번째 실행 상황을 처리합니다. $file_name 배열의 각 파일에 대한 0 값에 의해 트리거되는 첫 번째 페이지 로드 시 자동으로 생성됩니다. 목록 4.31의 스크립트 출력은 그림 1에서 볼 수 있습니다. 4.4.

    쌀. 4.4. 파일 카운터 결과

    4.10. 텍스트 및 그래픽 파일 저장

    텍스트 파일 또는 HTML 파일에 대한 링크를 클릭하면 브라우저 창에 해당 파일이 표시되는데, 이는 특히 파일을 다운로드하려는 경우 항상 편리하지는 않습니다. 동일한 운명이 그래픽 파일과 일반적으로 브라우저가 표시할 수 있는 모든 파일을 기다리고 있습니다. 방문자의 브라우저는 서버에서 파일의 내용을 "학습"합니다. 각 파일에는 클라이언트에게 내용, 다운로드한 파일의 크기, 쿠키 설정 필요성 등에 대해 알려주는 HTTP 헤더가 수반되기 때문입니다. 확인할 수 없으며 단순히 이진 스트림으로 전송됩니다.

    목록 4-32에 표시된 HTTP 헤더를 전송하여 이 동작을 억제할 수 있습니다.

    목록 4.32. 텍스트 및 이미지 파일을 저장하는 스크립트

    $filename = basename($_GET["down"]); header("콘텐츠 처리: 첨부; 파일명=$파일명"); header("콘텐츠 유형: 애플리케이션/octet-stream"); header("콘텐츠 길이: ".filesize($_GET["down"]));

    echo file_get_contents($_GET["다운"]); ?>

    목록 4-32의 스크립트는 파일 이름을 GET 매개변수로 사용합니다. 예를 들면 다음과 같습니다.

    index.php?down=filetext.txt . 기능 사용 basename()은 이름을 검색합니다.

    파일(down GET 매개변수에 파일 경로가 포함된 경우). Content-Disposition HTTP 헤더는 저장할 파일의 이름을 지정하며 filename 속성으로 지정됩니다. 위 스크립트에서 filename 매개변수는 전송되는 파일의 이름과 동일하지만 임의의 이름을 filename 매개변수로 전달할 수 있습니다. Content-type HTTP 헤더는 전송된 데이터가 바이너리이며 브라우저에서 해석해서는 안 됨을 나타냅니다. Content-length HTTP 헤더는 파일 크기를 클라이언트에 전달합니다. 마지막 줄은 file_get_contents() 함수를 사용하여 검색된 $_GET["down"] 매개변수를 통해 전달된 파일의 내용을 표시합니다. 목록 4.32의 스크립트 출력은 그림 1에 나와 있습니다. 4.5.

    메모

    파일의 내용이 출력된 후에는 아무것도 스트림에 출력되지 않는 것이 중요합니다. 에코 구성이나 직접 출력에 의해 - 그렇지 않으면 모든 것이 파일 끝에 첨부됩니다. 이는 후행 ?> 태그 뒤의 가능한 공백과 줄 바꿈에 적용됩니다.

    쌀. 4.5. 파일 업로드 대화 상자

    오랫동안 PHP와 MySQL에 대한 수업이 없었습니다. 오늘 우리는 간단하지만 효과적인 다운로드 카운터를 만들 것입니다.

    각 파일에는 데이터베이스 테이블의 행에 항목이 있습니다. 동일한 테이블에 파일 다운로드 횟수가 저장됩니다. PHP 데이터베이스를 업데이트합니다 MySQL 사용자를 필요한 파일로 리디렉션합니다.

    파일의 다운로드 수를 추적하려면 해당 파일을 폴더에 넣어야 합니다.파일 특별한 URL을 사용하여 액세스하십시오.

    1 단계 - XHTML

    첫 번째 단계는 스크립트에 대한 마크업을 만드는 것입니다. 매우 간단합니다. div 파일 관리자, 목록의 각 요소가 파일을 담당하는 정렬되지 않은 목록을 포함합니다.

    다운로드를 추적하려는 파일은 폴더에 있습니다.파일 스크립트의 루트 폴더에 있습니다. PHP 그런 다음 모든 파일을 반복하고 각 파일을 목록 항목으로 추가합니다() 정렬되지 않은 목록으로.

    데모.php


    • 사진촬영-1.0.zip 0 다운로드

    속성헥사 링크는 파일 이름을 매개변수로다운로드.php. 여기에서 다운로드 추적이 시작됩니다.

    모든 것을 같은 방식으로 표시할 필요는 없습니다.다운로드.php 귀하의 페이지에 모든 다운로드가 통과되지 않습니다.

    2 단계 - CSS

    마크 업 후 디자인으로 넘어 갑시다. CSS 아래 규칙이 적용됩니다. ID가 있는 div 파일 관리자(# 기호), 페이지에서 한 번만 발생하고 클래스 이름으로 나머지 요소에 발생하기 때문입니다.

    스타일.css

    #file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; )
    ul.manager li( background:url("img/bg_gradient.gif") repeat-x center bottom #F5F5F5; border:1px solid #DDD; border-top-color:#FFF; list-style:none; position:relative ; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* 가리키면 녹색 다운로드 텍스트 표시: */ display:block; ) span.download- label( background-color:#64B126; border:1px solid #4E9416; color:white; display:none; font-size:10px; padding:2px 4px; position:absolute; right:8px; text-decoration:none ; 텍스트 -shadow:0 0 1px #315D0D; top:6px; /* CSS3 둥근 모서리 */
    -moz-border-radius:3px; -webkit-border-radius:3px; 테두리 반경:3px; ) span.download-count( color:#999; font-size:10px; padding:3px 5px; position:absolute; text-decoration:none; )

    3단계 -PHP

    앞에서 말했듯이 PHP는 파일 폴더에서 파일을 찾고 각 파일을 정렬되지 않은 목록의 목록 항목으로 나열합니다. 어떻게 진행되는지 살펴보겠습니다.

    데모.php- 윗부분

    // 정답게 소곤 거리다 보고 오류: error_reporting(E_ALL^E_NOTICE); // : "connect.php"가 필요합니다. $extension=""; $files_array = 배열(); /* 폴더를 열고 모든 파일을 살펴보십시오.: */ $dir_handle = @opendir($directory) 또는 die("파일 디렉토리에 오류가 있습니다!"); while ($file = readdir($dir_handle)) ( /* 시스템 파일 건너뛰기: */ if($file(0)==".") 계속; /* 끝() 배열의 마지막 요소를 반환 함수에 의해 생성폭발(): */ $extension = strtolower(end(explode(".",$file))); /* php 파일 건너뛰기 : */ if($extension == "php") continue; $files_array=$파일; ) /* 파일을 알파벳순으로 정렬*/ 정렬($files_array,SORT_STRING); $file_downloads=배열(); $result = mysql_query("download_manager에서 * 선택"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* 어레이 키 $file_downloads 파일의 이름이 될 것입니다, 다운로드 횟수가 포함됩니다.: */ $file_downloads[$row["파일 이름"]]=$row["다운로드"]; )

    mysql_query()를 사용하여 download_manager 테이블에서 모든 행을 선택하고 나중에 파일 이름을 다운로드 수의 키로 사용하여 $file_downloads 배열에 추가하는 방법에 주목하십시오. 따라서 나중에 코드에서 $file_downloads["archive.zip"]을 작성하고 다운로드 수를 인쇄할 수 있습니다.

    아래에서 목록의 요소를 생성하는 코드를 볼 수 있습니다.

    데모.php- 중간 부분

    Foreach($files_array as $key=>$val) ( 에코 "

  • ".$발." ".(int)$file_downloads[$val]." 다운로드
  • "; }

    모든 것은 $files_array 배열의 foreach 루프로 간단하게 수행됩니다. 그 후 echo를 사용하여 모든 것이 출력됩니다.

    이제 파일 추적이 어떻게 작동하는지 자세히 살펴보겠습니다.

    다운로드.php

    // 에러 체크 : error_reporting(E_ALL^E_NOTICE); // db 연결 파일 활성화: 요구("connect.php"); if(!$_GET["파일"]) error("매개변수가 없습니다!"); if($_GET["file"](0)==".") error("잘못된 파일!"); if(file_exists($directory."/".$_GET["file"])) ( /* 만약 방문자는 검색 봇이 아닙니다., 카운트 다운로드: */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("위치: ".$directory."/".$_GET["file"]); 출구; ) else error("이 파일은 존재하지 않습니다!"); /* 함수 도우미: */ function error($str) ( die($str); ) function is_bot() ( /* 로봇의 이 체크 기능*/ $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK ", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler" ,"TweetmemeBot", "Butterfly", "Twitturls", "Me.dium", "Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // 봇임 ) return false; // 봇 아님)

    방문자가 사람인지 검색 엔진 로봇인지 확인하는 것이 중요합니다. 로봇은 훌륭하지만 통계를 왜곡하지 않도록 합시다. 그렇기 때문에 데이터베이스의 행은 is_bot() 확인 후에만 업데이트됩니다.

    4단계 -MySQL

    마지막 단계에서 언급했듯이 다운로드 수는 download_manager 테이블에 행으로 저장됩니다. 먼저 이 쿼리가 작동하는 방식을 설명하겠습니다.

    다운로드.php

    중복 키 업데이트에서 download_manager SET 파일 이름="filename.doc"에 삽입 downloads=downloads+1

    그것은 MySQL에게 download_manager 테이블에 새 행을 삽입하고 파일 이름 행 필드를 다운로드를 위해 호출된 파일의 값으로 설정하도록 지시합니다. 단, 파일명 필드는 테이블에서 고유 인덱스로 지정된다. 즉, 각 행은 한 번만 삽입할 수 있으며 그렇지 않으면 중복 키 오류가 발생합니다.

    이것은 쿼리의 두 번째 부분이 작동하는 곳입니다. ON DUPLICATE KEY UPDATE는 파일이 데이터베이스에 이미 존재하는 경우 다운로드 열에 하나를 추가하도록 MySQL에 지시합니다.

    따라서 첫 번째 다운로드 중에 새 파일이 자동으로 데이터베이스에 추가됩니다.

    5단계 - jQuery

    실시간 추적을 하기 위해서는 매번 다운로드 후 파일명 옆에 있는 카운터를 업데이트 하는 것이 좋을 것입니다.

    jQuery를 사용하여 이 작업을 수행합니다.

    script.js

    $(문서).ready(함수()( /* 페이지가 로드된 후 코드가 실행됩니다.*/ $("ul.manager a").click(function()( var countSpan = $(".download-count",this); countSpan.text(parseInt(countSpan.text())+1); ) ); ));

    파일로 연결되는 링크에 클릭 핸들러를 할당하고 클릭할 때마다 값을 추가합니다.

    6단계 -htaccess

    해야 할 일이 하나 더 있습니다. Download.php는 매개변수로 전달된 요청된 파일로 사용자를 리디렉션합니다. 그러나 브라우저가 일부 유형의 파일을 직접 열려고 시도한다는 사실을 눈치채셨을 것입니다. 또한 다운로드를 시작해야 합니다. 이것은 파일 폴더에 있는 .htacess 파일 내부의 몇 줄로 수행할 수 있습니다.

    ForceType 애플리케이션/옥텟 스트림

    이제 카운터가 완전히 준비되었습니다!

    결론

    데모가 작동하려면 MySQL 데이터베이스에서 download_manager 테이블을 다시 생성해야 합니다. 소스에서 필요한 SQL 코드를 찾을 수 있습니다.

    그런 다음 configuration.php 파일에서 데이터베이스에 연결하기 위한 데이터를 추가하십시오.

    오늘의 기사에서는 간단하지만 안정적인 파일 업로드 추적 시스템을 만들 것입니다. 각 파일에는 해당 파일의 총 다운로드 수가 저장되는 데이터베이스의 해당 행이 있습니다. PHP는 MySQL 데이터베이스를 업데이트하고 사용자를 적절한 파일로 리디렉션합니다.

    다운로드 수를 추적하려면 올바른 폴더에 파일을 업로드하고 특정 URL을 사용하여 액세스하기만 하면 됩니다.

    1단계 - XHTML

    먼저 XHTML 마크업이 필요합니다. 매우 간단합니다. 이것은 공통 블록입니다. 파일 관리자, 각 파일에 대한 링크가 요소 내부에 있는 글머리 기호 목록 포함 .

    다운로드 횟수를 계산할 파일은 해당 폴더에 업로드해야 합니다. 파일, 스크립트의 루트 디렉토리에 있습니다(예제를 사용하여 아카이브에서 파일 구조가 어떻게 구성되어 있는지 확인할 수 있음). PHP는 폴더에 있는 모든 파일을 반복하고 각 파일을 별도의 li 요소로 글머리 기호 목록에 추가합니다.

    데모.php

    • 사진촬영-1.0.zip 0 다운로드

    속성 헥사링크에서 업로드된 파일의 이름을 파일의 매개변수로 전달합니다. 다운로드.php. 나중에 볼 수 있듯이 여기에서 다운로드가 계산됩니다.

    다운로드 카운팅을 구성하기 위해 이 특정 인터페이스를 사용할 필요는 없습니다. 에 링크하면 됩니다 다운로드.php블로그 또는 웹 사이트 페이지에서 모든 다운로드가 올바르게 계산됩니다.

    2단계 - CSS

    XHTML 마크업이 준비되면 스크립트의 모양과 느낌에 집중할 수 있습니다. 아래의 CSS 스타일은 페이지에 하나만 있기 때문에 ID를 통해 파일 관리자 블록에 모양을 할당합니다. 나머지 요소는 클래스 이름을 통해 스타일이 지정됩니다.

    스타일.css

    #file-manager( background-color:#EEE; border:1px solid #DDD; margin:50px auto; padding:10px; width:400px; ) ul.manager li( background:url("img/bg_gradient.gif") 반복-x 중앙 하단 #F5F5F5; 테두리:1px 단색 #DDD; 테두리 상단 색상:#FFF; 목록 스타일:없음; 위치:상대; ) ul.manager li a( display:block; padding:8px; ) ul.manager li a:hover .download-label( /* 목록 위로 마우스를 가져가면 그 안에 다운로드 녹색 텍스트가 표시됩니다. */ display:block; ) span.download-label( background-color:#64B126; border :1px 단색 #4E9416; 색상:흰색; 디스플레이:없음; 글꼴 크기:10px; 패딩:2px 4px; 위치:절대; 오른쪽:8px; 텍스트 장식:없음; 텍스트 그림자:0 0 1px #315D0D; 상단 :6px; /* CSS3 둥근 모서리 */ -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; ) span.download-count( color:#999; font-size: 10px; 패딩:3px 5px; 위치:절대; 텍스트 장식:없음; )

    여기에서 "다운로드" 캡션은 속성으로 기본적으로 숨겨져 있습니다. 디스플레이: 없음. 통해 표시됩니다. 표시:블록, 링크 위로 마우스를 가져갈 때만 JavaScript가 없습니다. 캡션의 모서리를 둥글게 하기 위해 약간의 CSS3가 사용됩니다.

    3단계 - PHP

    위에서 말했듯이 PHP는 전체 폴더를 반복합니다. 파일, 각 파일을 글머리 기호 목록의 li 요소로 출력합니다. 이것이 어떻게 발생하는지 자세히 살펴 보겠습니다.

    demo.php - 탑

    // 오류 보고: error_reporting(E_ALL^E_NOTICE); // DB 연결 파일 포함: require "connect.php"; $extension=""; $files_array = 배열(); /* 썸네일 디렉토리 열기 및 모든 엄지 손가락 반복: */ $dir_handle = @opendir($directory) or die("파일 디렉토리에 오류가 있습니다!"); while ($file = readdir($dir_handle)) ( /* 시스템 파일 건너뛰기: */ if($file(0)==".") continue; /* end()는 다음에 의해 생성된 배열의 마지막 요소를 반환합니다. explode() 함수: */ $extension = strtolower(end(explode(".",$file))); /* php 파일 건너뛰기: */ if($extension == "php") continue; $files_array =$file; ) /* 파일을 알파벳순으로 정렬 */ sort($files_array,SORT_STRING); $file_downloads=배열(); $result = mysql_query("download_manager에서 * 선택"); if(mysql_num_rows($result)) while($row=mysql_fetch_assoc($result)) ( /* $file_downloads 배열의 키는 파일 이름이며 다운로드 횟수를 포함합니다. */ $file_downloads[ $row["filename"]]=$row["다운로드"]; )

    다음을 사용하여 download_manager 테이블에서 모든 레코드를 선택하는 방법에 유의하십시오. mysql_query()그런 다음 배열에 추가하십시오. $file_downloads, 어레이 키 파일 이름 및 값이 다운로드됩니다. 따라서 코드에서 다음과 같이 작성할 수 있습니다. $file_downloads['아카이브.zip'], 이 파일의 다운로드 수를 표시합니다.

    다음은 글머리 기호 목록의 li 요소를 생성하는 데 사용되는 코드입니다.

    demo.php - 중앙 부분

    Foreach($files_array as $key=>$val) ( 에코 "

  • ".$발." ".(int)$file_downloads[$val]." 다운로드
  • "; }

    모든 것이 매우 간단합니다. 우리는 사이클을 거칩니다. 각각배열로 $files_array, 페이지에 필요한 데이터를 적절한 마크업으로 표시합니다.

    이제 다운로드 계정이 어떻게 작동하는지 자세히 살펴보겠습니다.

    다운로드.php

    // 오류 보고: error_reporting(E_ALL^E_NOTICE); // 연결 파일 포함: require("connect.php"); if(!$_GET["파일"]) error("매개변수가 없습니다!"); if($_GET["file"](0)==".") error("잘못된 파일!"); if(file_exists($directory."/".$_GET["file"])) ( /* 방문자가 검색 엔진이 아닌 경우 다운로드 횟수를 계산합니다. */ if(!is_bot()) mysql_query(" INSERT INTO download_manager SET filename="".mysql_real_escape_string($_GET["file"])."" ON DUPLICATE KEY UPDATE downloads=downloads+1"); header("위치: ".$directory."/".$_GET[" file"]); exit; ) else error("이 파일은 존재하지 않습니다!"); /* 도우미 함수: */ function error($str) ( die($str); ) function is_bot() ( /* 이 함수는 방문자가 검색 엔진 로봇인지 확인합니다. */ $botlist = array("Teoma" , "alexa", "froogle", "Gigabot", "inktomi", "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory", "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot", "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp", "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg" " ", "rabaz", "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot", "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler", "TweetmemeBot", "Butterfly", " Twitturls","Me.dium","Twiceler"); foreach($botlist as $bot) ( if(strpos($_SERVER["HTTP_USER_AGENT"],$bot)!==false) return true; // 봇 ) return false; // 봇 아님 )

    여기에서 방문자가 링크를 크롤링하는 검색 엔진 로봇인지 반드시 확인해야 합니다. 로봇은 검색 엔진에 사이트를 나열하는 데 도움이 되기 때문에 좋은 방문자이지만 우리의 경우 다운로드 통계를 왜곡할 수 있습니다. 그렇기 때문에 방문자가 확인을 통과한 후에만 데이터베이스가 업데이트됩니다. is_bot().

    4단계 - MySQL

    이전 단계에서 언급했듯이 다운로드 횟수는 MySQL 데이터베이스의 download_manager 테이블에 문자열로 기록됩니다. 먼저 쿼리의 이 부분이 어떻게 작동하는지 설명하겠습니다.

    다운로드.php

    중복 키 업데이트에서 download_manager SET 파일 이름="filename.doc"에 삽입 downloads=downloads+1

    쿼리의 첫 번째 부분은 테이블에 새 행을 삽입하도록 MySQL에 지시합니다. 다운로드 관리자, 필드 값 설정 파일 이름로드할 요청된 파일의 이름과 같습니다. 또한, 필드 파일 이름고유한 테이블 인덱스로 정의됩니다. 즉, 특정 파일 이름을 가진 행은 한 번만 삽입할 수 있으며 그렇지 않으면 중복 키 필드 오류가 발생합니다.

    이 경우 요청의 두 번째 부분이 발효됩니다. 중복 키 업데이트 시, 필드의 가치를 높입니다. 다운로드파일이 이미 데이터베이스에 있는 경우 하나씩.

    이렇게 하면 새 파일이 처음 업로드될 때 자동으로 데이터베이스에 삽입됩니다.

    5단계 - jQuery

    다운로드 카운터를 보다 시각적으로 표시하려면 사용자가 다운로드를 시작하자마자 파일 이름 옆에 카운터를 업데이트하는 기능을 추가하면 좋을 것입니다. 지금까지 카운터의 새 값을 보려면 사용자가 페이지를 다시 로드해야 합니다.

    이것은 작은 코드로 해결할 수 있습니다.

    script.js

    $(document).ready(function()( /* 이 코드는 DOM이 완전히 로드된 후에 실행됩니다. */ $("ul.manager a").click(function()( var countSpan = $(".download -count",this); countSpan.text(parseInt(countSpan.text())+1); )); ));

    방금 링크 클릭에 이벤트 핸들러를 할당했습니다. 사용자가 링크를 클릭할 때마다 현재 다운로드 값이 1씩 증가합니다.

    6단계 - htaccess

    작업을 완료했다고 부르기 전에 해야 할 일이 하나 더 있습니다. 일부 유형의 파일은 기본 브라우저가 즉시 열려고 시도한다는 사실을 이미 알고 계실 것입니다. 대신 파일 다운로드를 시작해야 합니다. 파일 내부에 몇 줄을 추가하면 매우 쉽습니다. .htaccess폴더에 위치 파일:

    ForceType 애플리케이션/옥텟 스트림

    이제 다운로드 카운터가 준비되었습니다.

    결론

    자신의 서버에서 이 예제를 실행하려면 물론 액세스 권한이 있는 MySQL 데이터베이스에 download_manager 테이블을 생성해야 합니다. 예가 있는 아카이브에는 파일이 있습니다. 테이블.sql, 원하는 테이블을 생성하는 데 필요한 SQL 코드가 포함되어 있습니다.

    그런 다음 파일에 데이터베이스 연결 세부 정보를 지정하기만 하면 됩니다. 구성.php.

    소박한 작가의 프로젝트를 설정할 때 최근 관심을 갖게 된 다음 질문은 여기에 게시된 특정 파일의 다운로드 수를 계산하는 방법에 대한 질문이었습니다. 여기에는 다른 플러그인, 일종의 다운로드 관리자 또는 더 간단히 다운로드 카운터가 필요하다고 가정하는 것이 가장 논리적이었습니다. 인터넷을 검색한 결과 평소와 같이 이러한 플러그인은 마차와 작은 카트라는 것이 밝혀졌습니다. 그러나 그들의 리뷰 - 다시, 아니오. 무엇을 선택해야할지 명확하지 않았고 평소와 같이 모든 것을 스스로 테스트해야했습니다. 그리고 테스트 결과에 따르면 이 리뷰어가 나왔습니다. 매우 오랜 시간 동안 작성되었지만 목표는 설정에 대한 전체 검토와 함께 위의 모든 플러그인을 철저히 테스트하는 것이 아니므로 각 플러그인에 대한 자세한 스크린샷을 찾을 수 없지만 주요 설정은 다음과 같습니다. 나는 어떤 것에 대해 전혀 이야기하고 싶지 않았습니다. 그들은 너무 어리 석었지만 이미 본다면 아무것도 쓰지 않는 것이 유감이었습니다.

    소개.

    그래서 작업은 WordPress에 대한 다운로드 카운터를 설정하여 특정 파일의 다운로드 수를 계산하는 것이 었습니다. 자세히 살펴보면 여러 하위 작업으로 나뉘거나 오히려 이를 수행할 플러그인을 원합니다. 다음은 짧은 목록입니다.

    • 다운로드 수는 정렬 기능과 함께 관리자 패널 어딘가에 표시되어야 합니다. 일별, 주별, 월별, 연도별로 다운로드된 수
    • 서로 상대적인 파일 다운로드의 그래프/다이어그램을 볼 수 있는 것이 바람직합니다.
    • 시간 경과에 따른 파일 다운로드 그래프/다이어그램을 볼 수 있는 것이 바람직합니다.
    • 파일이 마지막으로 다운로드되었을 때 통계를 유지하는 것이 바람직합니다.
    • 링크 옆에 파일이 다운로드된 횟수, 크기, 다운로드하려는 사용자의 다운로드 날짜에 대한 정보를 표시하는 기능. 글쎄, 표시하지 않거나 - 관리자의 요청에 따라
    • TinyMCE 편집기의 게시 패널에 별도의 버튼으로 이를 담당하는 코드를 삽입하는 기능(퀵태그를 사용하는 것을 좋아하지 않음)
    • 다운로드 속도 제한 기능(만약의 경우)
    • 이 플러그인에 업로드 기능 추가(서버에 파일 업로드) - 반대로 포기하지 않았습니다. FTP는 저에게도 잘 작동합니다. 하지만 크게 방해가 되지 않는다면 그냥 두세요
    • 다운로드 링크에 아름다운 버튼을 붙일 수 있으면 좋을 것입니다. 클래스 = "버튼"만 작성하면 되지만

    아밥

    파일 다운로드!

    • 글쎄, 사이트뿐만 아니라 단순히 링크에서 다운로드 수를 계산하면
    • 파일이 서버에 있는 위치를 표시하지 않고 파일을 직접 다운로드하는 것을 금지할 수 있습니다.

    이것은 아주 작은 목록입니다.

    검토

    TOR를 결정한 후 우리에게 직접 제공되는 것이 무엇인지 고려하기 시작할 것입니다.

    1. 플러그인 다운로드 카운터 1.2, 여기에서 다운로드.

    처음에는 플러그인 페이지가 있었지만 작성자가 4년 이상 지원하지 않았습니다. 저를 위해 플러그인 디렉토리에 다른 폴더를 만듭니다. 다운로드 카운터, 거기에 두 파일을 모두 넣습니다. 결과적으로-어디서 생각하겠습니까? - 이에 대한 설정이 기록에 나타납니다. 매우 독창적이지만 괜찮습니다.

    우리는 안으로 들어가서 download-manager.php 파일의 경로를 씁니다 (저는 루트에서 말도 안되는 것을 던지고 싶지 않습니다). 그리고 우리가 얻은 것을 보세요. 파일을 업로드하고 수동으로 다운로드되었는지 확인하고 브라우저에 직접 링크를 입력하면 플러그인에 경로를 입력하여 카운터를 생성합니다. 이론상으로는 ID를 생성해야 하며 모든 위치에 삽입해야 합니다. 그러나 아무 일도 일어나지 않았습니다. "오류 - 레코드를 저장할 수 없습니다."라는 오류가 표시됩니다. 글쎄요, 우리는 그것을 설득했습니다. 우리는 그것을 download-manager.php 루트로 전송합니다. 다시는 같은 오류가 없습니다. 글쎄, 지옥에 금붕어, 저자가 포기하지 않은 플러그인을 이해하는 것만으로는 충분하지 않았습니다. 또한 기능은 거의 제로입니다.

    2. 플러그인 다운로드 카운터 고급 1.1, 동일하게 다운로드.

    나는 그것이 나에게도 실제로 효과가 없다고 즉시 말할 것이므로 학문적 관심에서만 설치 및 구성에 대해 읽을 수 있습니다. 사실 이것은 약간만 수정된 동일한 플러그인입니다. 지침이 번역되지 않았더라도 정상적으로 읽을 수 있고 번역자가 의미하는 바를 이해하려고 노력하지 않아도 감사합니다. 그건 그렇고, 관리자 패널에서 업데이트를 제공하는 완전히 다른 플러그인 인 것 같습니다 (예, 무화과). 이전 플러그인과 유사하게 해당 페이지가 있었고 같은 방식으로 작성자가 4년 이상 지원하지 않았습니다. 유추하여 플러그인 디렉토리에 다른 폴더를 만들고 내 폴더는 다운로드 카운터이며 거기에 모든 파일을 넣습니다. 물론 설정은 더 풍부해 보이지만 다운로드 속도는 모든 파일에 대해 즉시 제한되고 각 파일에 대해 개별적으로 설정되지는 않습니다. download-manager..php 파일은 어디 있습니까? 다운로드할 디렉토리의 이름으로 여기서 내 논리는 플러그인 작성자와 100% 동일하게 작동했습니다.

    파일 경로를 쉽게 선택할 수 있도록 다운로드 디렉토리("카테고리 및 디렉토리" 설정)의 서버에 있는 폴더 이름을 추가합니다. 추가하지 않으면 모든 것을 다운로드 루트에 다운로드해야 합니다. 저장, 다운로드를 추가할 수 있습니다. 대략적으로 얻은 것은 다음과 같습니다.

    이제 게시물에 삽입하려고 합니다. 링크를 추가하고 플러그인 설정에서 직접 발행되는 코드에 대한 링크를 변경합니다. 그리고 ... 그리고 당신에게 무화과! HTTP 오류 500(내부 서버 오류): 서버가 요청을 이행하려고 시도하는 동안 예기치 않은 상황이 발생했습니다. 음, 게시물에 직접 카운터를 추가하는 방법을 알려드리려고 했는데, 내부 링크가 그것을 실현하기 위해

    아밥

    < 아레프= "http://chewriter..jpg" />

    그런 다음 다운로드 버튼을 표시할 수 있습니다. 정말 비뚤어진 것입니다. 시간을 낭비한 당신을 위한 플러그인이 여기 있습니다. 그는 특히 통계를 보관하지 않습니다. 결함이 있는 위치를 파악하지 못하기 때문입니다.

    이것은 위의 Download Counter Advanced가 업데이트되도록 제안된 플러그인입니다. 글쎄, 그는 제안합니다-좋아요, 다운로드합시다. 플러그인은 3년 이상 업데이트되지 않았으며 일부 사용자는 코드 자체를 수정하기도 했습니다. 그것은 매우 성공적으로 설치되었으며 설정의 금욕주의는 낙관주의를 불러 일으키지 않습니다. 그건 그렇고, 그들은 설정을 어디에 둘지 추측했습니다. 이전 경우보다 나쁘지 않습니다. 설정 페이지에 카운터를 추가하면 모든 것이 강조 표시된 것처럼 보입니다.

    게시물에 추가된 내용을 살펴보겠습니다. 네, 버튼이 없습니다. 그리고 물론 바로 거기에서 잊었습니다. 모든 것이 직관적입니다. 지침을 살펴 보겠습니다. , 다운로드와 같은 단축 코드로 구성된 복잡한 구조를 차단해야 하며 동시에 (아마도 NC로 인해) 실제로 아무것도 계산하지 않습니다.

    따라서 그래픽 형식으로 정보를 표시하는 다운로드 카운터 차트 플러그인과 함께 더 이상 고려하지 않을 것이며 수행하지 않을 것입니다.

    우리 동포가 작성했지만 안타깝게도 그가 할 수 있는 일은 파일 이름 옆에 파일을 다운로드한 사람의 수를 표시하는 것뿐입니다. 통계나 다른 혜택은 제공되지 않습니다. 그러나 미니멀리즘 팬이라면 이것이 필요한 것입니다. 버튼이 없다는 것을 잊지 마세요. 단축 코드는 다음과 같습니다.


    워드프레스용 DIY 다운로드 카운터

    수동으로 입력해야 합니다. 저자가 모든 것을 자세히 그린 것이 매우 좋으며 직접 테스트 할 필요가 없었습니다.

    글쎄, 우리 사람들이 작성한 플러그인에 대해 이야기하고 있다면 한 가지 더 언급하지 않을 수 없습니다. 그것의 큰 장점은 파일 다운로드 수뿐만 아니라 링크 클릭도 계산할 수 있다는 것입니다. 링크가 파일로 연결되는지 또는 다른 페이지로 연결되는지는 중요하지 않습니다. 또는 다른 사람의 페이지에 있는 파일로 🙂 그는 이것을 계산하거나 오히려 이론적으로 계산해야 합니다. 그의 통계도 그다지 뜨겁지 않고 편집 패널에 버튼이 없으며 다운로드 제한도 없습니다. 그러나 보는 것은 여전히 ​​흥미 롭습니다. 따라서 다운로드하여 설치하십시오. 원칙적으로 상당히 자세한 설명은 저자의 웹 사이트에 있으므로 너무 많이 퍼뜨리지는 않겠습니다. 파일이나 링크에 카운터를 설정하려면 해당 유형의 단축 코드를 사용하거나 링크에 class = "count" 클래스를 삽입해야 한다는 점을 항상 염두에 두어야 합니다. 물론 이것은 성가 시며 버튼이 있으면 훨씬 더 편리합니다. 그러나 가장 짜증나는 것은 모든 제스처 후에도 여전히 제대로 작동하지 못했습니다. 단축 코드를 사용하면 다운로드 링크 자체가 표시되지 않고 클래스를 사용하면 링크 통계가 표시되지 않습니다. 관리자 패널에 나타납니다. 저자의 스크린 샷을 볼 수 있습니다. 아이디어 자체가 마음에 들면 시도해보십시오. 성공할 수도 있습니다.

    실제로 매우 간단합니다. 단축 코드 등이 필요하지 않습니다. 그러나 이 플러그인은 작성자에게만 통계를 제공하고 방문자에게는 파일 링크 옆에 표시되지 않습니다.

    그러나 누가 어떤 파일을 언제 다운로드했는지에 대한 자세한 통계가 유지된다는 점에 유의해야 합니다. 그러나 그것을 사용하는 것은 그리 편리하지 않습니다.

    설정에는 다음이 포함됩니다.

    • 파일을 다운로드할 수 있는 디렉토리를 지정할 수 있습니다.
    • 다운로드가 허용되는 파일 유형을 지정할 수 있습니다.
    • 작성자로 파일 다운로드 비활성화
    • 동일한 IP에서 링크를 반복적으로 클릭하면 한 번만 계산되는 간격을 초 단위로 설정합니다.
    • 하루에 하나의 IP에서 다운로드할 수 있는 파일 수 제한
    • 다운로드가 시작된다는 정보가 있는 일부 중간 페이지를 사용하십시오.

    그러나이 모든 것은 (간단히 말하면 ...) .htaccess 파일을 편집 할 수있는 권한이 있거나 링크를 삽입하여 직접 지정하는 경우에만 작동합니다.

    그러나 사용자에 대한 통계를 표시하는 기능이 없었고 링크 유형을 기억하고 싶지 않았기 때문에 대기열에 있는 다른 플러그인이 작업을 해결할 수 없는 경우에만 반환하기로 결정하고 고려를 중단했습니다. .

    정보 표시 측면에서 이 플러그인은 이전 단락에서 설명한 것과 매우 유사합니다. 주간, 월간, 모든 기간 및 상위 10개 항목별로 통계를 별도로 볼 수 있다는 점이 다릅니다. 기능면에서 훨씬 더 비참하고 파일 다운로드에 제한을 가하는 기능은 말할 것도없고 마지막 다운로드 또는 특정 파일에 대한 통계가 없습니다. 명확한 문서가 전혀 없습니다. 나는 이것이 플러그인이 아니라 일종의 오해라는 인상을 받았습니다. 스크린 샷을 제공하고 싶지도 않지만 객관적으로 저작권을 부여하겠습니다.

    글쎄, 우리는 다소 가치있는 것을 얻었습니다. 거의 50만 건의 다운로드가 무언가를 말하고 있습니다. 플러그인의 공식 페이지는 여기입니다. 게시물에 파일을 삽입하려면 비주얼 편집기 위의 화살표를 사용해야 합니다(아이콘 자체는 ​​표시되지 않음).

    그리고 나타나는 창에서 필요한 파일을 선택합니다(이미 FTP를 통해 업로드된 경우의 예입니다).

    그런 다음 "새 다운로드 저장" 버튼을 클릭합니다.

    다음 화면으로 이동하여 다운로드 형식을 선택하고 게시물에 삽입을 클릭합니다. 아무 일도 일어나지 않을 수도 있습니다. 플러그인은 최신 버전의 WordPress에서 약간 버그가 있습니다. 따라서 다운로드 보기 링크를 추가로 클릭해야 합니다.

    그리고 이미 먼저 다운로드 형식 선택, 삽입할 파일 옆에 있는 삽입 링크를 클릭합니다.

    그 후 유형의 해당 단축 코드가 게시물에 나타납니다.

    아밥

    [다운로드 ID="7592" 형식="1"]

    플러그인은 정교한 수동 구성이 필요하지만 WYSIWYG는 제공되지 않습니다. 한 번만 설정하면 되는 것이 좋습니다. 자세한 문서는 작성자에게 있습니다.

    다음은 설정 예입니다.

    아밥

    (제목)

    < 아레프= "(url)" title="다운로드됨(조회수,"ни разу","1 раз","% раза"}">{title}!}

    감소는 지원되지 않는다는 점에 유의해야 합니다. 파일이 21번 다운로드되었고 템플릿에 "times"가 있는 경우 러시아어가 아닌 것처럼 들릴 것입니다.

    버튼 옵션은 다음과 같습니다.

    아밥

    - (설명), (크기), 다운로드(날짜, "Y-m-d"), 다운로드(조회) 횟수

    < 아레프= "(url)" title="다운로드됨(조회수,"ни разу","1 раз","% раза"}">!} - (설명), (크기), 다운로드(날짜, "Y-m-d"), 다운로드(조회) 횟수

    다음과 같이 보입니다.

    글쎄, 약간의 개선 후에는 다음과 같이 보이기 시작했습니다 (여전히 버튼이 없음).

    회선 코드:

    아밥

    (filetype_icon) (제목)(파일 크기: (크기), 업로드: (날짜,"d.m.Y"), 다운로드(조회) 횟수)
    (설명)

    가능성 목록은 매우 광범위합니다.

    • 도움말을 사용하여 파일을 업로드하고(화살표를 클릭하여) 파일이 있는 위치를 표시할 수 있습니다. 이전에 FTP를 통해 업로드된 경우 간단히 URL을 지정할 수 있습니다.
    • 파일의 실제 위치를 숨기고 필요한 URL 조합을 대체할 수 있습니다.
    • 자신을 포함하여 다운로드 버튼을 사용할 수 있습니다.
    • 관리자에 의한 다운로드 및 카운터 제외 목록에 포함된 모든 불필요한 IP를 계산하지 마십시오.
    • 동일 IP에서 일정 시간 동안 반복 다운로드 횟수 카운트 여부
    • 사진, 카운터 있음, 카운터 없음 등 여러 형식을 설정하고 적절한 상황에서 각 형식을 사용할 수 있습니다.
    • csv 파일 형식의 다운로드 로그 업로드가 있습니다.

    mp3 또는 비디오 파일이 업로드되면 이를 지정하거나 강제 다운로드할지 여부를 지정해야 합니다. 강제로 클릭하면 다운로드되고 선택하지 않으면 재생 된 다음 마우스 오른쪽 버튼으로 저장됩니다. 도움말과 함께 업로드된 파일은 파일을 위한 특수 디렉토리가 생성된 위치가 아니라 wp-content/uploads/downloads/에 의해 생성된 위치에 있다는 점에 유의하고 싶습니다. 이 점과 사실을 기억해야 합니다. 통계에서 삭제할 때 - 물리적으로 파일도 서버에서 삭제됩니다. FTP를 통해 업로드된 파일의 경우 모든 것이 정상입니다. 또한 동일한 파일에 대한 다른 게시물에 링크를 삽입하면 링크가 요약되는지 이해하지 못했습니다. 안타깝게도 등록된 사용자를 제외한 모든 사람이 다운로드하지 못하게 할 수 있다는 사실을 제외하고는 다운로드 제한을 지원하지 않습니다. 브라우저 하단에 파일 이름을 표시하거나 해당 ID로 변경해야 하는 경우 설정->영구 링크로 이동하여 모든 것이 올바르게 등록되도록 구성을 저장해야 합니다. .htaccess에서 - 이것이 없으면 파일이 다운로드되지 않습니다.!

    통계는 콘솔, 파일 정보 및 다운로드 로그의 세 위치에 한 번에 표시됩니다. 예를 들어 파일이 마지막으로 다운로드된 시간을 확인해야 하지만 csv 파일 형식으로 통계를 업로드한 다음 Excel에서 정렬할 수 있는 경우와 같이 특정 불편이 발생합니다. Excel에 필요한 표와 차트를 작성하는 사악한 능력이 있다는 사실을 고려하면 나쁘지 않을 것입니다. 그러나 스크린샷이 더 많은 것을 말해 줄 것이라고 생각합니다.

    음, 로그 자체의 스크린샷:

    동시에 다음과 같은 통계와 함께 위젯이 콘솔에 표시된다는 큰 장점이 있습니다.

    일반적으로 약간의 조정 후에 플러그인이 제대로 작동한다고 말할 수 있습니다.

    이 플러그인은 예를 들어 제가 이 사이트에서 사용하는 WP-Polls 플러그인과 동일한 작성자가 작성했습니다. 그것을 즐기지만 그것과 비교할 때 훨씬 덜 인기가 있습니다. 하지만 그럴 자격이 있는지 봅시다. 모든 문서는 저자의 웹 사이트에서 찾을 수 있습니다. 본질적으로 플러그인은 이전 플러그인과 완전히 동일합니다. 템플릿은 동일한 방식으로 작성되며 등록 또는 미등록 사용자를 제외하고는 다운로드에 제한이 없으며 양식의 단축 코드를 사용해야 합니다.

    아밥

    [다운로드ID="7592"]

    나머지 포인트:

    • 도움을 받아 파일을 업로드할 수 있습니다(최대 2Mb, 또는 php.ini에 지정한 수). 이전에 FTP를 통해 업로드한 경우 URL을 간단히 지정할 수 있습니다.
    • 파일의 실제 위치를 숨기지만 필요한 URL 조합을 대체할 수 없으며 몇 가지 고정 옵션만 있으며 기본 옵션은 작동하지 않습니다.
    • 방문자에게 파일 크기, 다운로드 횟수, 다운로드 시간에 대한 정보를 표시하도록 구성할 수 있습니다.
    • 해당 파일 유형에 대한 아이콘을 표시할 수 있습니다.
    • 카운터를 재설정하거나 원하는 값을 설정할 수 있습니다.

    그러나 몇 가지 차이점도 있습니다. 첫째, 단축 코드를 삽입하는 데 사용할 수 있는 비주얼 편집기에는 버튼이 없습니다. 오히려 버튼이 있는데 사용하기 위해서는 먼저 플러그인 설정에서 파일에 대한 카운터를 추가해야 하고, 이 버튼을 누르면 해당 카운터의 ID가 게시물에 바로 추가됩니다. 둘째, 템플릿은 하나뿐이며 파일마다 다른 정보를 표시하는 것은 작동하지 않습니다. 통계의 장점 중 파일이 마지막으로 다운로드된 시간이 표시되고 그렇지 않으면 마이너스만 있습니다. csv 파일에 업로드하지 않고 다운로드한 사람을 볼 수 없으며(IP가 없음) 날짜별 배포가 없습니다.

    근데 아이콘이 더 이쁘네요(이전 플러그인에 나중에 붙였습니다). 그의 작업 결과는 다음과 같습니다.

    또한 데이터베이스에서 레코드를 삭제할 때 파일 자체도 삭제해야 하는지 아니면 그대로 두어야 하는지 묻습니다. 그러나 속성의 전체 측면에서 나는 적어도 게시물 외부에 파일을 별도로 삽입해야한다는 사실 때문에 이전 것보다 덜 마음에 들었습니다. 그러나 특별한 마이너스가 없습니다-그들 사이의 선택 취향의 문제입니다. 첫 번째는 더 많은 옵션, 더 자세한 통계, 두 번째는 약간 더 편리한 (비록 열악하지만) 통계 및 기능이 적습니다.

    중포가 작동했습니다. 플러그인은 대부분 Russified이며 카운터가 아닌 다운로드 관리자입니다. 다운로드 속도와 1인당 하루 다운로드 수를 제한할 수 있습니다.

    하지만 이 플러그인의 일부 기능은 중복되며 통계적으로 필요한 기능으로는 충분하지 않습니다. 많은 설정, 다운로드 위젯, 복잡한 동기화 시스템, mp3 태그 표시 시스템, flv 파일 표시, 미니 파일 저장소 구성, 게시물 시작 또는 끝 페이지에 지정된 모든 파일 표시 등 , 등.

    모든 설정의 스크린샷을 제공하고 싶지도 않습니다.

    그러나이 모든 것과 함께 게시물에 템플릿을 아름답게 표시하기 위해 스타일 파일을 편집하여 너비를 줄여야했습니다. 또한 기본 템플릿을 표시하기 위해서는 버튼으로 숏코드를 삽입한 후 필요합니다.

    템플릿 이름을 코드에 수동으로 입력합니다. 일부는 러시아 이름과 충돌합니다. 그건 그렇고, 그것은 다음과 같습니다 (한 번에 세 가지 템플릿 변형을 제공합니다).

    카운트 - 그루터기 데크를 통해 (글쎄, 또는 IP에서 한 번 이상 다운로드하는 것은 포함되지 않습니다. 모르겠습니다). 통계는 위에서 설명한 플러그인과 매우 유사하여 완전히 좋지 않은 것보다 약간 적습니다.

    일반적으로 나는 건강하지만 어리석은 인상을 받았습니다. 일부 파일 저장에 적합하며 다른 플러그인과 함께 사용하는 경우에도 적합합니다. 나는 그를 보았다-예, 철거되었습니다.

    솔직히 그의 설명을 읽었을 때 생각했습니다. 그게 다입니다. 필요한 것입니다!

    카운터, 암호 보호, 버튼으로 삽입된 단축 코드, 편집 가능한 버튼 등

    그리고 그것은 다음과 같습니다 (그는 한 번에 두 개의 사용 된 세 개의 템플릿을 제공했습니다).

    그러나 파일을 추가하려면 먼저 플러그인에 카운터를 추가해야 합니다. 둘째, 실제로 통계가 전혀 없습니다.

    셋째, 사용자의 파일 크기 표시를 설정할 수 없습니다. 넷째, 다운로드 속도 제한이 없으며 파일에 대한 암호 보호만 있습니다. 템플릿은 편집할 수 없습니다. 그리고 45달러에 프리미엄 버전을 구매하겠다는 큰 비문이 있습니다. 글쎄, 일반적으로 이해합니다. 맛있는 것은 모두 할머니를 위한 것이다. 비활성화되고 철거되었습니다. 그리고 아름다운 프레임, 버튼 등 -원할 때 스타일로 직접 처방하겠습니다.

    요약

    표준 방식으로 설치(디렉토리에 복사하여) wp-콘텐츠/플러그인/다운로드-모니터/, 업데이트하자, 모든 아이콘을 디렉토리의 아카이브에 있는 아이콘으로 바꿉니다. wp-content/plugins/download-monitor/img/filetype_icons/활성화합니다.

    나중에 손에 넣으면 css3를 사용하여 멋진 프레임으로 링크를 만들 생각인데, 아마 저도 글을 쓸 것입니다. 우리와 함께있어 🙂

    업데이트 이제 저자는 WordPress Download Monitor 플러그인을 재설계하여 원본과 완전히 다른 버전을 만들었습니다. 나는 그것을 확인했지만 다운로드 링크가 어떻게 생겼는지에 대한 양식 템플릿이 이제 편집하기가 쉽지 않기 때문에 훨씬 덜 마음에 들었습니다. 저자는 기성 사전 설정 보기로 충분하다고 결정했습니다. 예를 들어 다운로드 메뉴에 있는 경우 - 설정에서 6개의 사전 설정 보기 중에서 원하는 보기를 선택하고 저장을 클릭합니다.

    그런 다음 두 번째 옵션을 선택하면 다음과 같은 결과가 나타납니다.

    저것들. 새 버전에서는 설명에 제공된 행을 사용하는 것이 작동하지 않지만 이 출력 템플릿이 설명하는 특수한 php 파일을 작성해야 합니다. 그러나 가장 슬픈 것은 이것조차도 아닙니다. 하지만 이 php 파일이 플러그인이 있는 디렉토리에 있으면 플러그인이 업데이트될 때마다 덮어쓰여진다는 사실입니다. 그리고 테마가있는 디렉토리에 넣으면 테마를 변경할 때 (물론 이것은 훨씬 덜 자주 발생하지만). 그러나 어쨌든 그것을 쓰는 것은 다소 힘든 작업이며 지금까지 나는 그것을하고 싶지 않습니다. 따라서 업데이트된 플러그인의 유일한 장점



    질문이 있으신가요?

    오타 신고

    편집자에게 보낼 텍스트: