我正在尝试接受一个表单并将其写入CSV(提交表单的人不可见,但我可以将其视为服务器上每个人的条目的汇编,当我喜欢它时)。每当有人输入表单时,它将成为CSV上的新行。为了显示用户确实在提交,会弹出一个新标签,上面会有一些"谢谢"之类的信息和他们提交的内容,这样用户就可以确认这是他们提交的内容。是的,我确实有一个JS表单验证,工作完美,但因为没有问题,我把它放在外面以节省空间。
这是我目前的问题。在Firefox中,我只得到一个空白的新选项卡,标题为testForm.csv
的——blank——CSV上没有任何变化。在Chrome中,一个新的选项卡打开,其中包含我的php文档上的所有代码,我的CSV保持空白。
这是我的HTML代码片段:
<html>
<body>
<form name="Involved" method="post" action="postest.php" target="_blank" onsubmit="return validateForm();">
Name: <br><input type="text" name="name" title="Your full name" style="color:#000" placeholder="Enter full name"/>
<br><br>
Email: <br><input type="text" name="email" title="Your email address" style="color:#000" placeholder="Enter email address"/>
<br><br>
How you can help: <br><textarea cols="18" rows="3" name="help" title="Service you want to provide" style="color:#000" placeholder="Please let us know of any ways you may be of assistance"></textarea>
<br><br>
<input type="submit" value="Submit" id=submitbox"/>
</form>
</body>
<html>
这里是postest.php
:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$help = $_POST['help'];
$csvData = $name . "," . $email . "," . $help . ''n';
echo "Thank you for your submission! We'll get back to you as soon as we can!";
echo "I'm " . $name . ", my email is " . $email . ", and I can help in that: 'n" . $help;
$filepointer = fopen('testForm.csv','a');
if ($filepointer){
fwrite($filepointer,$csvData);
fclose($filepointer);
exit();
}
?>
我检查了这个关于回声的问题,看看这是否是我的问题。我之前问过这个问题,除了明显的$_POSTEST
问题外,似乎没有人发现我的代码有什么问题。这一页看起来像我想要的,但不是。这个问题有我想要的东西,但实际上没有POST代码,答案是我读过的最没用的东西之一(简而言之):"去做吧。"其实没那么复杂",还有一些其他SO问题的链接,我也关注了)。他们把我带到这里和这里。我把exit();
放在fclose()
之后,就像它似乎对第一个工作一样(它什么也没做)。对于第二种情况,用户的代码与我一直在寻找的代码相差太远,我无法将我的代码更改为他/她正在做的代码。我已经搜索了很多,做了大量的谷歌搜索,但我要在这里削减我的研究清单,因为没有人想要阅读所有内容;这只是为了证明我努力过。
如果你还需要什么,请告诉我;我是一个完全的php新手,它可能是一些非常基本的东西,我错过了。另一方面,在这一点上,我没有看到我的代码和其他人的代码有什么主要的区别。
试试这样:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$help = $_POST['help'];
$filepointer = fopen('testForm.csv','a');
fputcsv($filepointer, array($name,$email, $help));
echo "Thank you for your submission! We'll get back to you as soon as we can!";
echo "I'm " . $name . ", my email is " . $email . ", and I can help in that: 'n" . $help;
?>
错误:-
---> $filepointer = fopen('testForm.csv','a');
$fp = fopen('testForm.csv','a');
if ($fp){
fwrite($fp,$csvData);
fclose($fp);
exit();
}
真正的问题是没有
display_errors = On
log_errors = On
在php.ini文件中查找这些参数,并打开它们,除非您是在活动服务器上开发,在这种情况下,您真的应该设置一个测试环境。
然后不查看PHP错误日志
实际上只有一行需要修改,这是完整的代码。
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$help = $_POST['help'];
$csvData = $name . "," . $email . "," . $help . ''n';
echo 'Thank you for your submission! We''ll get back to you as soon as we can!';
echo ''"I''m '"' . $name . ", my email is " . $email . ", and I can help in that: 'n" . $help;
$fp = fopen('testForm.csv','a'); // only line changed
if ($fp){
fwrite($fp,$csvData);
fclose($fp);
exit();
}
?>
你的错误是非常基本的,我为你感到羞耻。您的问题显然是您没有使用服务器,也没有在您的计算机上安装PHP包。当你告诉计算机target="_blank"
和method="post"
时,它知道你想要的是HTML。然而,没有任何解析PHP的东西,它不知道如何读取你的代码,在Firefox中显示为空白页,在Chrome中显示为代码块。
你真的不知道你在做什么。