2016-03-05 26 views
0

当用户打开页面时,会出现一个计数变量,该变量将递增1。计数变量以及数据都写入文件中。如何在php中追加文件编号为

问题涉及到不增量的会话变量。每次页面加载时,应该在会话中增加一个应该放入文件的增量。

主要思想是有一个文本框。用户只是写文本苹果现在数据保存在文件以及计数的会话变量中。如果同一用户再次在文本框中写一些东西,将追加之前与相同的会话ID

例如

用户第一次来,在文本框“我是作家”写的。

session id  Text 
24   I am a writer 

再次在文本框中相同的用户写我是负责人。它应该具有相同

session id  Text 
24   I am a writer I am a Chief 

追加这是PHP代码

<?php 
session_start(); 


if (isset($_SESSION["hello"])) 
    $_SESSION["hello"]++; 
else 
    $_SESSION["hello"] = 1; 

if (isset($_POST['submit'])) { 
    $txt = "abc.txt"; 
    if (isset($_POST['field1'])) { 
     $fh = fopen($txt, 'a'); 
     $a = $_SESSION["hello"]; 
     $txt = $a . '-' . $_POST['field1']; 

     fwrite($fh, $txt . PHP_EOL); 
     fclose($fh); 

    } 
} 

echo $_SESSION["hello"]; 

HTML

<form action="index.php" method="POST"> 
    <input name="field1" type="text" /> 
    <input type="submit" name="submit" value="Save Data"> 
</form> 
+0

你确定计数器没有递增吗?它适用于我...你可以显示你在文件“abc.txt”中得到什么? – trincot

回答

0

我跑了Debian的服务器上的代码,它似乎增加并保存为预期。写完东西并提交3次后,abc.txt看起来像这样

cat abc.txt 
2-i'm the first entry! 
3-2nd line of input 
4-3rd line! 

您确定这不是一个权限问题吗?如果您在Linux上,请尝试输入包含index.php的目录并执行以下操作。

sudo chmod +x index.php 
sudo chmod 777 . 

记住更改777会更合理/更少的自由,一旦你找到了这个错误(777补助完全读/写/执行权限的任何人几乎是从来没有在生产环境中正确的选择)。 。