2011-11-25 49 views
1

我一直在试图抓住一个人的IP地址,然后存储在一个txt文件中,当一个人付钱给我访问某些内容。当我将IP存储在txt文件(logFile.txt)中时,我希望支付费用的人员重定向到仅供付费人员使用的内容页面。我也希望能够将尝试复制/粘贴浏览器链接的用户重定向到“额外内容”。PHP:IP地址签入文本文件

我的代码在我的网站上,可以记录人们的IP地址,但我想采取该日志文件,并与额外的内容页面交叉引用它。

p.s.我花了几个小时试图找出它与日志记录到一个文本文件,以避免mysql

我只需要一个普遍的想法,所以我可以包裹我的头围绕这件事。不知道如何去做这一切。

+2

你为什么试图避免SQL,一个完全可以接受的数据存储介质?您可以拥有一个帐户系统,然后将包分配给帐户。这样,您甚至可以在订阅中设置到期日期,如果他们不继续支付。 – WhiskeyTangoFoxtrot

回答

1

您可以将存储的IP地址中的数组:

array{ 
    [0] => '192.168.1.1', 
    [1] => '192.168.1.2', 
} 

然后保存为文本文件之前,在阵列上使用serialize。这将返回一个可以写入文本文件的字符串。

要检索您的数组,只需使用unserialize即可获取数组。现在,您应该有一个IP地址阵列,您可以使用standard array functions来搜索,添加和删除。

4
  1. 你为什么试图避免MySQL?如果两个用户同时执行此操作,则可能会丢失或阻止对日志文件的写入操作之一。 MySQL采取措施来防止这种情况。它也可能会更快。
  2. IP地址既不是唯一标识(两个用户可能使用一个IP地址),也不是对给定用户持久(一个用户可能使用两个IP地址)。如果我付费购买内容,我将非常沮丧,然后无法再访问它,因为我没有静态IP地址。
  3. 最后(为了更直接地回答您的问题),您可以使用$_SERVER['REMOTE_ADDR']来获取用户的IP地址,并且使用file_put_contents将其写入文件,但我不确定您对此的处理方式是最佳方式。
+0

针对第2点的主要+1。 – ceejayoz

+0

那么你会建议什么?我正尝试构建付费访问内容网站,而无需通过用户/通行证进行登录,并且所支付的内容仅可用于24小时。 – Whizard

+1

我想说,你需要满足的标准是:**(1)**只有购买数据的用户才能访问它; **(2)**购买数据的用户将可以随时访问它(只要它应该可用); **(3)**“登录”信息应该是私人用户(即其他人无法猜到)**(4)**“登录”信息不应该太私人化(例如社会安全号码,信用卡号码等)。由于这些要求,对我来说最简单或最合乎逻辑的事情似乎是使用用户名/密码系统。你为什么不想? –