我尝试将$_POST
从<form>
保存到.txt文件中。如果我点击提交按钮,我的代码将只保存$date
变量,而不是$date
&amp; $hour
。
这是我在“form.php”中的表格
<form method="post" action="save.php" id="formID">
<input type="text" name="Name" placeholder="Name" id="nameFieldID">
<input type="text" name="Hour" placeholder="Hour" id="hourFieldID">
<input type="submit" name="" value="" id="submitButton">
</form>
这是我的“save.php”中的代码
<?php
setlocale(LC_ALL, "de_DE.utf8");
date_default_timezone_set('Europe/Berlin');
error_reporting(E_ALL);
$date = date("d.M Y");
$time = date("H:i:s");
$name = $_POST["Name"];
$hour = $_POST["Hour"];
$file = "nameAndHour.txt";
$handle = fopen($file, "a");
$details = fread($handle, filesize($file));
fclose($handle);
$handle = fopen("nameAndHour.txt", "a");
fwrite($handle, $detail);
fwrite($handle, $date, "\t");
fwrite($handle, $time, "\t");
fwrite($handle, $name, "\t");
fwrite($handle, $hour);
fclose($handle);
include('form.php');
?>
有人可以帮助我,在我的.txt文件中获取$_POST
个变量吗?我做错了什么?
答案 0 :(得分:1)
首先,在尝试写入文本之前确保(文本)文件存在并且具有适当的写入权限,否则您将收到以下警告:
警告:fread():长度参数必须大于0
然后,您需要使用点, "\t"
替换. "\t"
的所有逗号。
这就是您收到以下警告的原因:
警告:fwrite()要求参数3为long,给定字符串
<强>重写:强>
<?php
setlocale(LC_ALL, "de_DE.utf8");
date_default_timezone_set('Europe/Berlin');
error_reporting(E_ALL);
$date = date("d.M Y");
$time = date("H:i:s");
$name = $_POST["Name"];
$hour = $_POST["Hour"];
$file = "nameAndHour.txt";
$handle = fopen($file, "a");
$detail = fread($handle, filesize($file));
fclose($handle);
$handle = fopen("nameAndHour.txt", "a");
fwrite($handle, $detail);
fwrite($handle, $date . "\t");
fwrite($handle, $time . "\t");
fwrite($handle, $name . "\t");
fwrite($handle, $hour);
fclose($handle);
include('form.php');
?>
<强>脚注:强>
您还可以使用带有条件语句的file_exists()
检查文件是否存在。
示例:
if (file_exists("nameAndHour.txt")) {
// execute code
...
}
else{
echo "File does not exist.";
}
另一件事。关于你的最后一行:
fwrite($handle, $hour);
你应该为它添加一个"\n"
,以便在最后一个条目后插入一个回车符,否则你的文件将被写成一个长行。
fwrite($handle, $hour . "\n");
&#34;还有办法将细节放在表格中吗?我可以使用HTML吗?&#34;
编辑(一个快速的HTML表格示例)
要在HTML表格中写入数据,您可以使用以下内容:
$table1 = "<table>";
$table2 = "</table>";
$tr1 = "<tr>";
$tr2 = "</tr>";
$td1 = "<td>";
$td2 = "</td>";
fwrite($handle, $table1 . "\n");
fwrite($handle, $tr1 . "\n");
fwrite($handle, $td1 . "\n");
fwrite($handle, $date . "\t");
fwrite($handle, $time . "\t");
fwrite($handle, $name . "\t");
fwrite($handle, $hour . "\n");
fwrite($handle, $tr2 . "\n");
fwrite($handle, $td2 . "\n");
fwrite($handle, $table2 . "\n");
会写出来,并举例说明:
<table>
<tr>
<td>
28.May 2015 21:41:35 data1a data1b
</tr>
</td>
</table>
答案 1 :(得分:0)
你刚刚犯了一个语法错误。
更改
setlocale(LC_ALL, ""de_DE.utf8");
到
setlocale(LC_ALL, "de_DE.utf8");
答案 2 :(得分:0)
save.php第2行的syntx错误。删除额外的“并且最好在编码之前休息并放松,这样你就可以避免这些错误
使用
setlocale(LC_ALL, "de_DE.utf8");
而不是
setlocale(LC_ALL, ""de_DE.utf8");