首页 > 解决方案 > 当用户单击链接而不重定向到该特定 php 页面并同时下载 mp3 文件时,如何运行 php 脚本?

问题描述

我有一个 mp3 文件,当我通过访问地址栏中的脚本地址(如https://groupkse.net/music_files/countDownloads.php?id =3。我的问题是,当单击链接下载该 mp3 时,我想在不将浏览器重定向到该位置的情况下运行此 php 脚本。注意:mp3 与 countDownloads.php 位于同一目录中,包含链接的页面位于不同目录中,但在同一服务器上,即https://groupkse.net/songReleaseHtml/megaMuQuarantine.php

countDownloads.php 中的代码如下:

<?php

//Make connection with database

$conn = mysqli_connect("localhost", "groupkse_music_admin", "my_Password", "groupkse_music_downloads");

//Check connection

if (mysqli_connect_errno()) {
    printf("Connection failed: %s\n", mysqli_connect_error());
    exiit();
}

//Passing which song needs download increment

$incomingData = $_SERVER['QUERY_STRING'];
$data = substr($incomingData, strpos($incomingData, 'id=') + 3);
$id = mysqli_real_escape_string($conn, $data);
//echo "$id";

$query = "UPDATE `music_downloads` SET `downloads_number` = `downloads_number` + 1 WHERE `Id` = '$id'";
mysqli_query($conn, $query);

?>

以及来自我在 megaMuQuarantine.php 中的链接的代码:

<a href="../music_files/mu_quarantine.mp3" download="file.mp3" title="Download song" class="downloadButton" id="dButton">Download MP3</a>

标签: javascriptphphtmlmysqldatabase

解决方案


<a href="../music_files/mu_quarantine.mp3" download="file.mp3" title="Download song" class="downloadButton" id="dButton">Download MP3</a>

添加此输入以指向计算下载的 php 文件。

<input type="hidden" id="downloadCounter" value="LINK TO COUNTER" />

把它放在你网页的底部:

<script>
    document.getElementById("dButton").addEventListener("click", function(event){
        var xhttp;
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            location.relod;
        }
        };
        xhttp.open("GET", document.getElementById("downloadCounter").value(), true);
        xhttp.send(); 
    });
</script>

推荐阅读