从表单获取用户输入,使用php写入文本文件

时间:2010-01-05 22:32:45

标签: php forms input user-input

作为订阅者获取的一部分,我希望从html表单中获取用户输入的数据,并使用php将其写入制表符分隔的文本文件。所写的数据需要通过制表符分隔并附加在其他数据下方。

点击表单上的订阅后,我希望它删除表单并在div中显示一条小信息,如“感谢订阅”。

这将在wordpress博客上,并包含在弹出窗口中。

以下是具体细节。非常感谢任何帮助。

变量/输入

$Fname = $_POST["Fname"];
$email = $_POST["emailPopin"];
$leader = $_POST["radiobuttonTeamLeader"];
$industry = $_POST["industry"];
$country = $_POST["country"];
$zip = $_POST["zip"];

$ leader是一个双选项单选按钮,其值为“yes”和“no”。

$ country是40个左右的国家/地区。

所有其他值均为文字输入。

我已完成所有基本表单代码并准备就绪,除了操作,我真正需要知道的是:

如何使用php写入制表符分隔的文本文件,并在提交感谢信息后换出表单?

再次感谢您的帮助。

6 个答案:

答案 0 :(得分:10)

// the name of the file you're writing to
$myFile = "data.txt";

// opens the file for appending (file must already exist)
$fh = fopen($myFile, 'a');

// Makes a CSV list of your post data
$comma_delmited_list = implode(",", $_POST) . "\n";

// Write to the file
fwrite($fh, $comma_delmited_list);

// You're done
fclose($fh);

在impode中用\ t替换标签

答案 1 :(得分:3)

以附加模式打开文件

$fp = fopen('./myfile.dat', "a+");

并将所有数据放在那里,标签分开。最后使用新行。

fwrite($fp, $variable1."\t".$variable2."\t".$variable3."\r\n");

关闭文件

fclose($fp);

答案 2 :(得分:0)

// format the data
$data = $Fname . "\t" . $email . "\t" . $leader ."\t" . $industry . "\t" . $country . "\t" . $zip;

// write the data to the file
file_put_contents('/path/to/your/file.txt', $data, FILE_APPEND);

// send the user to the new page
header("Location: http://path/to/your/thankyou/page.html");
exit();

通过使用header()函数重定向浏览器,可以避免用户重新加载页面并重新提交数据时出现问题。

答案 3 :(得分:0)

换出表单相对容易。确保将表单的操作设置为同一页面。只需将表单包装在“if(!isset($ _ POST ['Fname']))”条件中。在将表单发布到“else {}”部分之后,放置要显示的任何内容。因此,如果表单已过帐,则会显示“else”子句中的内容;如果表单未发布,将显示“if(!isset($ _ POST ['Fname']))”的内容,即表单本身。您不需要其他文件来使其工作。
要在文本文件中写入POSTed值,只需按照其他人提到的任何方法进行操作。

答案 4 :(得分:0)

这是fwrite()最好的例子,你最多只能使用3个参数,但是附加一个“。”你可以根据需要使用尽可能多的变量。

if isset($_POST['submit']){
    $Fname = $_POST["Fname"];
    $email = $_POST["emailPopin"];
    $leader = $_POST["radiobuttonTeamLeader"];
    $industry = $_POST["industry"];
    $country = $_POST["country"];
    $zip = $_POST["zip"];

    $openFile = fopen("myfile.ext",'a');
        $data = "\t"."{$Fname}";
        $data .= "\t"."{$email}";
        $data .= "\t"."{$leader}";
        $data .= "\t"."{$industry}";
        $data .= "\t"."{$country}";
        $data .= "\t"."{$zip}";

    fwrite($openFile,$data);
    fclose($openFile);
}

答案 5 :(得分:0)

非常简单: 表格数据将被收集并存储在$ var中 $ var中的数据将写入filename.txt \ n将添加一个新行。 文件附加禁止覆盖文件

<?php
$var = $_POST['fieldname'];
file_put_contents("filename.txt", $var . "\n", FILE_APPEND);
exit();
?>