【发布时间】:2016-04-29 12:03:43
【问题描述】:
我想通过 php 检测来自我的电报组(内联链接)的用户
但是服务器没有返回HTTP_REFERER
怎么可能
【问题讨论】:
-
它是
HTTP_REFERER,但您需要检查它是否已设置 -
不,没有设置,这里有错字,同时我做
print_r($_SERVER)@Dale
标签: php http-referer telegram
我想通过 php 检测来自我的电报组(内联链接)的用户
但是服务器没有返回HTTP_REFERER
怎么可能
【问题讨论】:
HTTP_REFERER,但您需要检查它是否已设置
print_r($_SERVER)@Dale
标签: php http-referer telegram
referer 是一个客户端标头,您无法确定它的设置。如果您想检查用户是否来自电报应用程序,则引用者将不会出现在其不同的应用程序中,并且请求是由浏览器或其他创建的。
referers 由浏览器为链接创建,并且仅针对相同的协议。 http -> https 不起作用。
你不能依赖于所有的引用头都是客户端的。只需为指向您网站的链接使用不同的地址。如果您将链接发送到电报,则预设参数。
【讨论】:
?telegram=1,我可以简单地检测到;-)
我通过在我的网址末尾添加?telegram=1 解决了这个问题
然后我可以从电报频道检测用户
另一种创建不同文件名或创建子域的方法!
tg.example.com/[MY-QUERY]
【讨论】:
https://telegram.me/BOT_USERNAME?start=USER_ID
id=message.text.replace('/start ','').split(" ",1)[0]
fv.open('./id/' + str(id) + '/referal.txt', 'a').write(str(chat_id) + "\n")
r=fv.open('./id/' + str(id) + '/referal.txt', 'r').read().split("\n")
l=len(r)
bot.send_message(chat_id, "Your ball: " + str(l))
【讨论】: