我的任务是将包含24个输入字段的表单中的数据放入txt文件中。在PHP编码时不太适应我从网上获得了一些代码片段,来自一个带有2个输入字段的示例的file_put_content
片段。它工作(=它将数据写入文件并显示'thank_you'页面)。我添加了另一个字段 - 它有效。好的,现在我添加了所有字段 - 它没有写入文件并生成一个空白页面。
我回到3字段版本,并开始将字段1添加1.当它停止在8个字段中工作时,我引入了一个2. isset(POST[])
元素。这样我可以添加另外6个字段,并且它有效。 (在我从11个字段成功打印数据到我的文件时,我分别保存了代码)。当在第7个字段时,它再次生成一个空白页面并且没有保存到文件,我删除了最后一个添加 - 并且我的BIG SURPRISE在我添加最后一个之前已经工作的代码不再工作了吗?!我继续逐个元素删除 - 它不再工作了?!所以我恢复了代码的保存版本 - 它仍然无效。
所以我查了每一个字母,标志和号码 - 都无济于事。虽然我没有改变html表单中的任何内容,但我也提到了这一点,因为所有内容都指向了指向我的php文件的表单中的问题。一切都是徒劳。 我知道它必须是我做过的事情,现在却忽略了 - 请指出我的错误所在。
这是2天前工作的版本,我在展开之前保存了它:
<?php
function resetForm($form) {
$form.find('input:text, input:password, input:file, select, textarea').val('');
$form.find('input:radio, input:checkbox')
.removeAttr('checked').removeAttr('selected');
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if(isset($_POST['q01' | 'q02' | 'q03' | 'q04' | 'q05' | 'q06' | 'q07']) && isset($_POST['q08' | 'q09' | 'q99' | 'q98'])) {
$data = $_POST['q01'] . '#' . $_POST['q02'] . '#' . $_POST['q03'] . '#' . $_POST['q04'] . '#' . $_POST['q05'] . '#' . $_POST['q06'] . '#' . $_POST['q07'] . '#' . $_POST['q08'] . '#' . $_POST['q09'] . '#' . $_POST['q99'] . '#' . $_POST['q98'] . "\n";
$ret = file_put_contents('data/data.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
}
else {
header('Location:danke.html');
}
exit (0);
}
?>
只是为了确保我也会发布表格的相关行:
<form id="umfrage" class="appnitro" method="post" action="data2text.php" accept-charset="UTF-8">
<input id="saveForm" class="button_text" type="submit" name="submit" value="Fertig!" />
答案 0 :(得分:0)
您的resetForm
函数似乎不是PHP。
isset($_POST['q01' | 'q02' | 'q03' | 'q04' | 'q05' | 'q06' | 'q07'])
if (isset($_POST['q01']) || isset($_POST['q02']) .....) {
请注意double pipes!