Php 检查提交按钮
我遇到了一些问题,我希望此脚本:Php 检查提交按钮,php,file,for-loop,submit,lines,Php,File,For Loop,Submit,Lines,我遇到了一些问题,我希望此脚本: 打开test.txt文件 检查用户是否向txt文件添加了任何文本 如果用户添加了任何文本,请删除现有行并将其替换为新行。从$邮政 如果用户没有,请在test.txt中添加$\u POST 问题: 当我用垃圾邮件发送提交按钮时,这个.txt文件就会乱七八糟。有人知道怎么做支票,这样就不会搞砸了吗? 请不要建议MYSQL,我需要这些在.txt文件 谢谢 函数cutline($filename,$line_no=-1){ $strip\u return=FALSE;
函数cutline($filename,$line_no=-1){
$strip\u return=FALSE;
$data=文件($filename);
$pipe=fopen($filename,'w');
$size=计数($data);
如果($line_no==-1)$skip=$size-1;
else$skip=$line_no-1;
对于($line=0;$line)
HWID
我不能100%确定文本文件是怎么搞砸的,但我想锁定在这里不会有帮助,因为当脚本完成(或重新加载)时,锁会被释放
看起来您只是在执行过程中“杀死”了cutline
,其余的行将不会被写入。解决这一问题的一种方法是将文件的新内容保存在临时变量中,并只调用fwrite
一次。(我不确定这是否可行)
另一种可能是在执行cutline
方法时,将cutline
的结果写入一个临时文件,并用新文件替换旧文件。这可能发生在方法内部
无论哪种方式,如果脚本在不安全状态下被终止,现有文件都不会被触动。但是,当用户在调用cutline
函数之后以及在您将新输入添加到此行之前重新加载页面时,您仍然可以从用户那里丢失新输入
fwrite($fh, $stringData);
我认为这真的很难强制执行,因为这个操作相当快
编辑:
如果这是一个有效的用例,请不要忘记同时使用多个用户测试脚本。如果两个或多个用户同时编辑同一个文件,它也会出错。因此,您可能会以一些锁定结束,但这不会解决此处描述的问题。文本是如何出错的?您能再详细说明一下吗?您的答案是否定的在我所能看到的任何地方“关闭”文件。文本正在出错,因为您在完成文本编写之前重新打开了文件。打开的文件将在脚本结束时关闭。否则,您将永远无法再次打开文件。或者任何人。(直接关闭它仍然是明智的。)
fwrite($fh, $stringData);