在PHP中创建一个可保存的表单?

时间:2014-07-18 15:45:13

标签: javascript php jquery forms savestate

我创建了一个简单(但很长)的HTML表单,我需要以前能够保存表单进度并在以后返回它(安全性不是一个大问题)。但我无法保存表单状态,然后再回忆它。 (警告,我是菜鸟)

所以有:

我有一张表格

<form action="phpSaveTry1.php" form method="post"> 

使用保存按钮提交表单时

<INPUT TYPE = "Submit" Name = "Save" VALUE = "Save and Submit">

我尝试以下列方式将所有发布的变量保存在服务器上的文件中...(欢迎提出其他建议)

$varNameArray = array("fname","mname","lname","comment","email","website","saveFile");

if (isset($_POST['Save'])) {
for($i = 0; $i < count($varNameArray); ++$i) { //go through every variable and add it to array
    $arrayOfVars[$varNameArray[$i]] = ($_POST[$varNameArray[$i]]);
    }
}
$saveFileName = "NameOfSavedState";
$var_str = var_export($arrayOfVars, true);
$var = "<?php\n\n\$$arrayOfVars = $var_str;\n\n";
file_put_contents(sprintf("/home/pansyc5/public_html/Jul17/SavedForms/%s.php",$saveFileName), $var);

然后在包含表单的html标题中,我想回忆变量

$saveFileName = "NameOfSavedState";
include sprintf("/home/pansyc5/public_html/Jul17/SavedForms/%s.php",$saveFileName);

并通过首先重新填充变量

将值调用到字段中
for($i = 0; $i < count($varNameArray); ++$i) { //go through every variable and declare it

    $varNameArray[$i] = ( $arrayOfVars[$varNameArray[$i]] );
} 

然后通过将html值设置为例如

来重新填充表单
 Last Name: <input type="text" name="lname" value="<?PHP print $lname; ?>">

我是网站设计的新手,但这似乎是一种非常复杂的方式来保存表单会话(更不用说,它不起作用)。 重新填充或保存表单状态的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

抛弃所有这些代码。通过将数据写入PHP文件,您将创建一个安全噩梦。大多数代码都没有理由。尝试更简单的事情:

session_start();
$_SESSION['lastFormData'] = $_POST;

然后当您稍后填写表单时

echo '<input name="lname" value="' . htmlspecialchars($_SESSION['lastFormData']['lname']) . '" />';