无法将 $_POST 从 <form> 保存到 .html
Can´t save $_POST from <form> into .html
我尝试将 $_POST
从 <form>
保存到 .txt 文件中。如果我点击提交按钮,我的代码将只保存 $date
变量,而不是 $date
& $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
变量吗?我做错了什么?
您刚刚犯了一个语法错误。
改变
setlocale(LC_ALL, ""de_DE.utf8");
到
setlocale(LC_ALL, "de_DE.utf8");
save.php 第 2 行出现语法错误。删除额外的 ",最好在编码前休息和放松,这样你就可以避免这些错误
使用
setlocale(LC_ALL, "de_DE.utf8");
而不是
setlocale(LC_ALL, ""de_DE.utf8");
首先,在尝试写入之前确保(文本)文件存在并且具有适当的写入权限,否则您将收到以下警告:
Warning: fread(): Length parameter must be greater than 0
- 旁注:参考我的脚注。
然后您需要用点 . "\t"
.
替换 , "\t"
的所有逗号
这就是您收到以下警告的原因:
Warning: fwrite() expects parameter 3 to be long, string given
重写:
<?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"
,以便在最后一个条目之后插入一个回车return,否则你的文件将被写成一长行。
fwrite($handle, $hour . "\n");
"Is there also a way to put the details in a table? Can I use HTML?"
编辑:(快速 HTML table 示例)
要在 HTML table 中写入数据,您可以使用这样的方法:
$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>
- 但是您需要对此进行试验。我不能再详细说明了,因为它不是原始问题的一部分。
我尝试将 $_POST
从 <form>
保存到 .txt 文件中。如果我点击提交按钮,我的代码将只保存 $date
变量,而不是 $date
& $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
变量吗?我做错了什么?
您刚刚犯了一个语法错误。
改变
setlocale(LC_ALL, ""de_DE.utf8");
到
setlocale(LC_ALL, "de_DE.utf8");
save.php 第 2 行出现语法错误。删除额外的 ",最好在编码前休息和放松,这样你就可以避免这些错误
使用
setlocale(LC_ALL, "de_DE.utf8");
而不是
setlocale(LC_ALL, ""de_DE.utf8");
首先,在尝试写入之前确保(文本)文件存在并且具有适当的写入权限,否则您将收到以下警告:
Warning: fread(): Length parameter must be greater than 0
- 旁注:参考我的脚注。
然后您需要用点 . "\t"
.
, "\t"
的所有逗号
这就是您收到以下警告的原因:
Warning: fwrite() expects parameter 3 to be long, string given
重写:
<?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"
,以便在最后一个条目之后插入一个回车return,否则你的文件将被写成一长行。
fwrite($handle, $hour . "\n");
"Is there also a way to put the details in a table? Can I use HTML?"
编辑:(快速 HTML table 示例)
要在 HTML table 中写入数据,您可以使用这样的方法:
$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>
- 但是您需要对此进行试验。我不能再详细说明了,因为它不是原始问题的一部分。