php写附加文件,重复不需要的

php写附加文件,重复不需要的,php,html,Php,Html,我有下面的脚本,我从一个表单(action)调用它来获取表单中的给定数据。但当我试图将表单数据写入文件时。它似乎在重复,我无法找出代码中的错误 在本例中,我清除了“testfile.txt”。因此,它有了一个新的开始。在HTML表单中,我输入了邮政编码1212 aa 然而,作为一个“奖金”,我得到了大约15倍的邮政编码一行 <?php $myfile = fopen("testfile.txt", "a") or die("Unable to open file!");

我有下面的脚本,我从一个表单(action)调用它来获取表单中的给定数据。但当我试图将表单数据写入文件时。它似乎在重复,我无法找出代码中的错误

在本例中,我清除了“testfile.txt”。因此,它有了一个新的开始。在HTML表单中,我输入了邮政编码1212 aa 然而,作为一个“奖金”,我得到了大约15倍的邮政编码一行

<?php

    $myfile = fopen("testfile.txt", "a") or die("Unable to open file!");
    $txt =  "postcode" . $_POST['entry_508642568'];
    echo $txt;
    fwrite($myfile, "\n". $txt);
    fclose($myfile);

?>

看起来表单被提交了多次。要么修复该问题,要么在附加到文件之前先检查输入

<?php

    if( !empty($_POST['entry_508642568']) ) {

        $myfile = fopen("testfile.txt", "a") or die("Unable to open file!");
        $txt =  "postcode" . $_POST['entry_508642568'];
        echo $txt;
        fwrite($myfile, "\n". $txt);
        fclose($myfile);
    }

?>

看起来表单被多次提交。要么修复该问题,要么在附加到文件之前先检查输入

<?php

    if( !empty($_POST['entry_508642568']) ) {

        $myfile = fopen("testfile.txt", "a") or die("Unable to open file!");
        $txt =  "postcode" . $_POST['entry_508642568'];
        echo $txt;
        fwrite($myfile, "\n". $txt);
        fclose($myfile);
    }

?>

上面的答案很好,但您也可以使用标志来处理将字符串写入文件的操作

<?php

    if( !empty($_POST['entry_508642568']) ) {

        $file = 'testfile.txt';
        $txt =  "postcode" . $_POST['entry_508642568'];
        file_put_contents($file, $txt, FILE_APPEND | LOCK_EX);
        //LOCK_EX flag to prevent anyone else writing to the file at the same time
    }

?>

上面的答案很好,但您也可以使用标志来处理将字符串写入文件的操作

<?php

    if( !empty($_POST['entry_508642568']) ) {

        $file = 'testfile.txt';
        $txt =  "postcode" . $_POST['entry_508642568'];
        file_put_contents($file, $txt, FILE_APPEND | LOCK_EX);
        //LOCK_EX flag to prevent anyone else writing to the file at the same time
    }

?>


PHP代码看起来不错。你能发布你正在使用的表单的html吗?试着用
“w”
替换
“a”
,并检查是否发生了什么。你发布的脚本很可能会用空的
$\u post
执行多次,然后用填充的
$\u post
$txt=“postcode>执行一次$_邮政['entry_508642568']这将总是写一个值而不是所有值,因为我认为它是
POST
数组的一个索引,包含一个
value
@Vishwa好主意,我专注于PHP,现在检查HTML和JS PHP代码看起来不错。你能发布你正在使用的表单的html吗?试着用
“w”
替换
“a”
,并检查是否发生了什么。你发布的脚本很可能会用空的
$\u post
执行多次,然后用填充的
$\u post
$txt=“postcode>执行一次$_邮政['entry_508642568']这将总是写一个值而不是全部值,因为我认为它是
POST
数组的一个索引,包含一个
value
@Vishwa好主意,我专注于PHP,现在检查HTML和JS它一定是一些JS刷新页面上的一些信息,但仍然不知道如何。然而,这个解决方案也解决了这个问题。谢谢你,这一定是一些JS什么刷新页面上的一些信息,但仍然不知道如何。然而,这个解决方案也解决了这个问题。谢谢你