直接链接访问,但通过mysql/php跟踪?
我有一个直接链接,指向我想分发给访问者的文件,例如:直接链接访问,但通过mysql/php跟踪?,php,mysql,.htaccess,Php,Mysql,.htaccess,我有一个直接链接,指向我想分发给访问者的文件,例如: http://www.mydomain.com/mynewmix.mp3 当上面的链接正在ping/hit/download时,有没有办法运行以下查询 UPDATE `db` SET `downloaded`=`downloaded`+1 WHERE `url`='http://www.mydomain.com/mynewmix.mp3' 非常感谢在这方面我能得到的任何帮助。提前非常感谢。是的,这是可能的。您可以在apache中使用重写模
http://www.mydomain.com/mynewmix.mp3
当上面的链接正在ping/hit/download时,有没有办法运行以下查询
UPDATE `db` SET `downloaded`=`downloaded`+1 WHERE `url`='http://www.mydomain.com/mynewmix.mp3'
非常感谢在这方面我能得到的任何帮助。提前非常感谢。是的,这是可能的。您可以在apache中使用重写模块。因此,您可以说,对于所有(mp3)文件,服务器不应该返回mp3文件,而应该运行一个php文件/脚本来执行查询并返回mp3文件 这可能会帮助您: 在.htaccess文件中:
RewriteEngine on
RewriteRule ^\.mp3$ index.php [L]
这将把所有以.mp3结尾的链接发送到index.php(实际上它仍然是相同的链接,但index.php将被执行)
您还有其他选择:
RewriteRule ^.*/(\w)*\.mp3$ index.php?filename=$1 [L]
这将使用GET veriable文件名和文件名执行index.php
例如,$\u GET['filename']=“filename”
(当文件名为filename.mp3时)
在index.php中,让用户下载mp3文件(请参阅:):
您可以使用以下代码动态执行此操作:
$fileName = $_GET['filename']."mp3"; //we stripped .mp3 in the apache rewrite (might not be so smart)
$fileLocation = "/your/location/".$filename;
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-length: ' . filesize($fileLocation));
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($fileLocation);
exit();
您可以通过以下方式访问请求的链接:
$_SERVER['REQUEST_URI'];
或新的(生成的url):
是的,这是可能的。您可以在apache中使用重写模块。因此,您可以说,对于所有(mp3)文件,服务器不应该返回mp3文件,而应该运行一个php文件/脚本来执行查询并返回mp3文件 这可能会帮助您: 在.htaccess文件中:
RewriteEngine on
RewriteRule ^\.mp3$ index.php [L]
这将把所有以.mp3结尾的链接发送到index.php(实际上它仍然是相同的链接,但index.php将被执行)
您还有其他选择:
RewriteRule ^.*/(\w)*\.mp3$ index.php?filename=$1 [L]
这将使用GET veriable文件名和文件名执行index.php
例如,$\u GET['filename']=“filename”
(当文件名为filename.mp3时)
在index.php中,让用户下载mp3文件(请参阅:):
您可以使用以下代码动态执行此操作:
$fileName = $_GET['filename']."mp3"; //we stripped .mp3 in the apache rewrite (might not be so smart)
$fileLocation = "/your/location/".$filename;
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-length: ' . filesize($fileLocation));
header('Content-Disposition: attachment; filename="'.$fileName.'"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($fileLocation);
exit();
您可以通过以下方式访问请求的链接:
$_SERVER['REQUEST_URI'];
或新的(生成的url):
是的,你能做到。单击url需要调用ajax来运行更新查询,如果成功,您将继续下载文件。是的,您可以这样做。单击url需要调用ajax来运行更新查询,如果成功,您将继续下载文件。我认为还有另一种方法可以满足您的需要:
我认为还有另一种方法可以满足您的需求:
可能ajax可以帮助您…如果他们直接访问mp3文件,ajax将如何帮助我?可能ajax可以帮助您…如果他们直接访问mp3文件,ajax将如何帮助我?这很接近,但我只能访问自己的.htaccess。。。。如果我能用这种方法得到任何例子,我将不胜感激。请看我的例子,尽管你应该自己了解它是如何工作的,否则使用它可能会很危险;)这很好,但它运行index.php,但不允许访问者继续下载/流式播放mp3….:(您的答案在这里:谢谢Joel…我也在这样做:重写规则^.*/(\w)*\.mp3$index.php?文件名=$1[L]当我回显GET时,它没有给我url栏中的完整链接…这很接近,但我只能访问我自己的.htaccess…我可以使用此方法获得的任何示例都将不胜感激。请看我的示例,尽管您应该自己了解它的工作原理,否则使用它可能会很危险;)这很好,但它运行index.php,但不允许访问者继续下载/流式播放mp3….:(你的答案在这里:谢谢Joel…我也在这样做:RewriteRule ^.*/(\w)*\.mp3$index.php?filename=$1[L],当我回显GET时,它不会给我url栏中的完整链接…如果用户直接从url栏访问mp3,这将不起作用。如果用户直接从url栏访问mp3,这将不起作用。)