我正在处理表单,并希望保存提交的每个表单的副本。问题是表单的操作是一个计数文件,它使每个文件保存一次。例如,提交的第三个表单命名为" 3.php",提交的第十个表单命名为" 10.php"。当我尝试在新文件顶部写入POST变量时,它就消失了。无论如何,我可以用我的计数文件代码写一个新文档的回复吗?
主文件上的表单代码:
<form action="count.php" method="post">
<input type="text" name="formItem1">
<input type="text" name="formItem2" required>
<input type="text" name="formItem4" required>
<input type="text" name="formItem5" required>
<input type="text" name="formItem6" required>
<input type="submit" name="Click" value="Submit">
</form>
Count.php代码:
<body>
<?php
define('countlog.txt', __DIR__ . "./");
if (file_exists('countlog.txt')) {
# If File exists - read its content
$start = (int) file_get_contents('countlog.txt');
} else {
# If No File Found - Create new File
$start = 1;
@file_put_contents('countlog.txt', "$start");
}
# When Form Submitted
if (isset($_POST) and isset($_POST['Click']) and $_POST['Click'] == "Submit") {
$file_name = "{$start}.php";
$template = file_get_contents('template.php');
@file_put_contents("./submissions/" . $file_name, "$template");
# Update Counter too
$start = $start + 1;
@file_put_contents('countlog.txt', "$start", 1);
echo "Generated Filename - $file_name";
}
?>
</body>
Template.php代码:
echo "<h1>Answer1: " . $formItem1 . "</h1>";
echo "<h1>Answer2: " . $formItem2 . "</h1>";
echo "<h1>Answer3: " . $formItem3 . "</h1>";
echo "<h1>Answer4: " . $formItem4 . "</h1>";
echo "<h1>Answer5: " . $formItem5 . "</h1>";
echo "<h1>Answer: " . $formItem6 . "</h1>";
答案 0 :(得分:1)
使用会话。使用session_start();
在每个页面上创建会话使用会话全局数组存储post值。例如。 $_SESSION['yourValue'] = POST['yourValue'];
。现在,在其余页面上,您应该能够访问该值。 e.g
$yourValue = $_SESSION['yourValue'];
答案 1 :(得分:1)
如果您使用template.php
,它会使eval()
的内容成为字符串,并且不会评估变量。
您可以使用return
http://php.net/manual/en/function.eval.php将字符串计算为PHP代码。我不推荐这种方法,但是如果你想使用它,你需要echo
而不是return "<h1>Answer1: " . $formItem1 . "</h1>".
"<h1>Answer2: " . $formItem2 . "</h1>".
"<h1>Answer3: " . $formItem3 . "</h1>".
"<h1>Answer4: " . $formItem4 . "</h1>".
"<h1>Answer5: " . $formItem5 . "</h1>".
"<h1>Answer: " . $formItem6 . "</h1>";
模板,否则模板将被回显到浏览器而不是你要保存的字符串提交。
的template.php
$template = file_get_contents('template.php');
$template = eval($template);
count.php
include
$template
模板会更容易/更好,代码会执行,从而填充<?php
$template = "<h1>Answer1: " . $formItem1 . "</h1>".
"<h1>Answer2: " . $formItem2 . "</h1>".
"<h1>Answer3: " . $formItem3 . "</h1>".
"<h1>Answer4: " . $formItem4 . "</h1>".
"<h1>Answer5: " . $formItem5 . "</h1>".
"<h1>Answer: " . $formItem6 . "</h1>";
?>
变量。
的template.php
include('template.php');
count.php
extract($_POST);
两种方法都假设您已使用{{1}}将数组中的变量导入当前符号表。