Rumah  >  Soal Jawab  >  teks badan

web - php 实现同一条链接点击只显示一次内容

有这样一个需求,一个列表页上有n多的链接地址,要求打开显示一次内容后就失效,(注意:所有的内容都是通过接口获得的,需要proxy对方生成的页面,不可直接暴露对方url避免被分享)。
使用PHP实现。请高手现身帮帮忙,谢谢。
注意,这个链接打开一次是指不能复制分享,而不是说,换台电脑又能打开了。

迷茫迷茫2749 hari yang lalu545

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-04-10 14:52:50

    写代码还得调试,不喜欢……

    给个简单思路吧。

    数据库主要表: 链接 访问码 添加链接: 添加链接的时候,生成初始访问码。可以直接用链接地址进行摘要作为访问码(比如MD5)。 生成链接列表: 根据数据库取得指定链接的访问码并输出。 访问链接: 根据访问码反查链接以供跳转。 对当前访问码进行摘要获得新的访问码并存入数据库。

    没仔细看题……同一思路下更正……

    数据库主要表:
    表一:
    访问码 链接
    表二:
    proxy次数

    Proxy:
    每次Proxy时,表二中proxy次数+1
    每个链接和proxy次数共同进行摘要作为访问码(比如把proxy次数与链接连成一个字符串再进行MD5),写入表一
    根据访问码以类似go.php?xxxxx的形式输出页面中的链接。其中xxxxx是访问码。

    访问链接:
    页面上点击访问的是go.php?xxxxx形式的链接,其中xxxxx是访问码。
    根据访问码在数据库中查询表一条目,找不到就是链接失效。找到的话,取出链接用于跳转,同时删除条目确保下次访问失效。

    balas
    0
  • 阿神

    阿神2017-04-10 14:52:50

    类似阅后即焚咯?

    1. 对列表页上的链接进行抓取存储,网址打开一次就做数据库查询,有则加载然后从数据库删除,无则返回没有的状态。
    2. 对列表的URL进行数据库存数,并增加read字段,如果read = false则加载内容并设置read = true,若read = true则返回没有的状态。

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:52:50

    <?php
    if (已经访问过了) {
        exit('链接已经失效');
    } else {
        在数据库中记录这个链接被访问了;
        exit('我是内容我是内容');
    }
    ?>
    

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:52:50

    用当前浏览器UA+IP的hash值做密钥
    将地址(如a.php?id=3)中的id进行加密得到加密字符串(如abcdefg)
    然后列出地址b.php?id=abcdefg,php对ID进行解密。不能解密就报错不允许访问。

    balas
    0
  • Batalbalas