如何防止网址链接打开新标签或直接访问?

时间:2019-01-18 07:23:27

标签: javascript php html

我有一个使用php脚本的mp3播放器。当他们单击链接时,它将播放。问题是,当链接打开一个新选项卡时,它将自动下载mp3歌曲。或他们复制网址链接时。我想阻止直接访问该页面或打开新标签页。我想要的是当他们打开新标签时出现错误页面。

在我的index.php中,他们单击该链接将播放的链接。

echo '<li class="active"><a href="play.php?id='.base64_url_encode($item).'&cid='.$today.'"><img src="./images/song.png" alt="" style="width:20;height:20;border:0;" data-method="post"> ' . $filename . '</a></li>'.PHP_EOL;

play.php?id = Li9tdXNpYy9NdXNpY3MyL05ldyBGb2xkZXIvTmV3IEZvbGRlci9IYW1ib2cgTmcgU2FncHJvIEtyZXctQWxhYWxhIE5hbGFuZyBmdC4X

我想阻止“ play.php?id =“在新标签页中打开或直接访问。只有mp3播放器可以进行互动来播放play.php?id =。

我试图创建一个会话,但是不起作用,我试图$ _SERVER [“ HTTP_REFERER”]也不起作用。

我需要一个在index.php中恒定的代码,并且当index.php中的代码与play.php中的代码不相等时,它将出现错误。我尝试了一个时间戳,问题是当它无法等于索引和play.php的时间戳时。任何想法?我需要一个从index.php到另一个页面play.php的验证器。预先感谢!

我尝试使用此代码隐藏play.php的真实网址,问题是将加载mp3文件,而不是播放给播放器

<a href="index.php" onclick="javascript:$('#myDiv').load('play.php?id=');return false;">Link</a>
<div id="myDiv"></div>

1 个答案:

答案 0 :(得分:0)

您是否尝试过链接的一部分,而不是使用:

<a href="play.php?id='.base64_url_encode($item).'&cid='.$today.'"><img src="./images/song.png" alt="" style="width:20;height:20;border:0;" data-method="post"> ' . $filename . '</a>

从事物的外观上,您在页面上有一个列表,上面带有各种base64编码的URL,这些链接被称为链接,以与相册插图的20px x 20px小(也可链接/可点击)的缩略图一起显示,然后显示一个文本显示在文件名旁边,该文件名由$ filename动态调用-在用结束</a>

关闭链接HTML标记之前

您是否尝试过在<a href="your base64 encoded URL goes here"开头的双引号(“)后面包含URL,并准确地添加了URL,包括空格:

<a href="your base64 encoded URL goes here" target="_self">

这应强制将单击的链接强制加载到现有页面中。就像老式的但仍然有效的'target =“ _ blank”'一样,链接也会在新标签页(或窗口中打开,具体取决于您的特定浏览器的设置)中打开。简单的修复,但它可能会起作用。