file_put_content表现出奇怪的缩放行为

时间:2015-09-18 14:30:46

标签: php html-form

我的任务是将包含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!" />

1 个答案:

答案 0 :(得分:0)

您的resetForm函数似乎不是PHP。

isset($_POST['q01' | 'q02' | 'q03' | 'q04' | 'q05' | 'q06' | 'q07'])

你期待这件事做什么?这对字符串执行binary operations ...这不是检查数组键可用性的方法。你应该分别检查每个密钥:

if (isset($_POST['q01']) || isset($_POST['q02']) .....) {

请注意double pipes

相关问题