在我的创建页面中,我正在使用一个或多个文件上传文本框,选择框,表单内的文本框,填写完所有表单数据并提交后,我将进行服务器验证然后插入数据库...在插入数据库之前,如果服务器校验失败,填充的数据就会丢失,有没有简单的方法来防止数据丢失?
对于选择和文本框,我们可以传递 $_POST
的值
但是对于文件上传文本框,如何防止数据丢失?我们可以存储在会话中吗?
提前谢谢..
您可以使用一些变量来存储数据,然后您可以执行验证
好吧,我举了一个PHP验证的例子
<?php
if(isset($_POST['submit'])){
$name = $_POST['name']; //
// and some other data input
and goes the validation part
?>
<form ... >
<input type="text" name="name" value="<?php if(isset($name)) echo $name; ?>"
</form>
嗯..这必须有效..您可能会找到其他更好的方法。但这也会起作用
据我所知,您无法像其他表单元素一样维护文件上传值。
如果仍要保留 $_FILES 值。您可以在会话中接受它们。
$_SESSION['imagename'] = $_FILES['image']['name'];
$_SESSION['imagetmp'] = $_FILES['image']['tmp_name'];
您可以将数据保存在变量中并在以后填充,但 type="file" 输入字段除外。 如果文件可以预填充(或说未经用户许可而选择)并且浏览器不允许,这将是一个安全问题。
一种选择是将文件保存在服务器中的任何临时文件夹中,如果验证工作正常,请将其移动到上传目录。
另一种选择是分步(以页面为单位)显示表单,在最后一步显示文件上传选项,以便用户在所有验证后到达文件上传部分,您可以在最后一步中进行文件上传验证。