在没有做任何事情的情

时间:2015-01-06 01:26:59

标签: php

今天早些时候我问了一个关于我做错了什么的问题,我得到了这个工作,但现在我遇到了这个脚本的另一个问题。

以前

代码发出警告(),现在已修复。您可以阅读帖子Here

有什么问题?

代码自动清空。刷新脚本所在的页面时,文本文件为空。我不知道为什么... 这是代码

    <?php 
$fn = "file.txt"; 
$file = fopen($fn, "w+"); 
$size = filesize($fn); 

if($_POST['addition']) fwrite($file, $_POST['addition']); 

fclose($file); 
?> 
<form action="<?=$PHP_SELF?>" method="post"> 
<input type="text" name="addition" value="<?php echo file_get_contents('file.txt');?>"/> 
<input type="submit"/> 
</form>

我使用此脚本在我的网站上显示YouTube视频,因此我经常更新它。 您可以使用以下链接找到该脚本的工作示例:http://beta.martijnmelchers.nl/private/Test/test.php

我尝试了什么?

我没有多尝试,因为我无法在互联网上找到解决方案,也没有在代码中找到解决方案。 请再帮帮我!提前谢谢!

1 个答案:

答案 0 :(得分:1)

根据带w+选项的manual

  

开放阅读和写作;将文件指针放在开头   该文件和将文件截断为零长度。如果文件没有   存在,试图创造它。

看起来你想要在发布帖子时替换所有内容,所以最简单的解决方案是将所有文件处理调用放在POST条件中:

// To avoid warnings, this is better.
// You can add your original condition after it if you need it.
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
  $file = fopen($fn, "w+"); 
  // not sure why you need this...
  // $size = filesize($fn);
  fwrite($file, $_POST['addition']);
  fclose($file);
}