【问题标题】:Write file on php在php上写文件
【发布时间】:2012-12-30 02:29:23
【问题描述】:

我想保留访问者的 ips 并将它们放在一个文件中。
我尝试了 fwrite() 函数,但我认为它是在文件上的 previus ip 上重写。

示例。

ip.txt 为空。

当我运行 write.php 脚本时,在 ip.txt 上我有 x.x.x.x ip(我的 ip)

如果我的朋友运行 write.php 脚本,在 ip.txt 我有 a.a.a.a ip(仅限朋友的 ip)

我的IP在哪里? 我想在 ip.txt 文件上有以下内容:

x.x.x.x   ip1  
a.a.a.a   ip2

write.php 上的代码如下。

<?php
$file = fopen("ip.txt","w");
$ip=$_SERVER['REMOTE_ADDR'];
echo fwrite($file,$ip);
fclose($file);
?> 

【问题讨论】:

  • 你应该使用数据库。
  • 我想把它们写在一个文件上以提高安全性!文件比 msql 数据库更安全是一种误解吗? @jeroen
  • 有很多免费的开源分析工具可以与 PHP 一起使用,它们会做得更好。
  • @John 假设您在 webroot 中运行了该脚本。我所要做的就是下载 ip.txt 那么安全吗?
  • 我需要它在我的索引页面上显示此人现在或 1 分钟前访问了我网站的该页面,但我找不到任何用于此目的的脚本。 @MathewFoscarini

标签: php ip fwrite


【解决方案1】:

把“w”改成“a”

W表示写(over),a表示追加。

【讨论】:

    【解决方案2】:
    <?php
    $file = fopen("ip.txt","a");
    $ip=$_SERVER['REMOTE_ADDR'];
    echo fwrite($file,$ip);
    fclose($file);
    ?> 
    

    看manual

    检查第二个参数的含义。

    您选择了w 模式,这是一种覆盖模式。改用a 模式(追加)

    【讨论】:

      【解决方案3】:

      数据库版的“优势”是没人可以查看 数据。如有必要,您可以使用 .htaccess 文件避免访问该文件:

      对于 Apache 2.2

      # Protect log.txt
      <Files ./inscription/log.txt>
      Order Allow,Deny
      Deny from all
      </Files>
      

      对于 Apache 2.4

      # Protect log.txt
      <Files ./inscription/log.txt>
      Require all denied
      </Files>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-31
        • 1970-01-01
        • 1970-01-01
        • 2021-05-12
        • 1970-01-01
        • 2019-01-31
        • 1970-01-01
        • 2018-04-27
        相关资源
        最近更新 更多