2012-07-03 38 views
0

在我的创建页面中,我正在使用一个或多个文件上传文本框,选择框,表单内的文本框,填写完所有表单数据并提交后,我将执行服务器验证,然后插入到分机中... 之前插入数据库,如果服务器验证失败,填充数据丢失,有没有简单的方法来防止数据丢失?如何避免在php中进行服务器验证后数据丢失?

的选择和文本框,我们可以传递的$_POST

的价值,但对于文件上传文本框,如何防止数据丢失?我们可以在会话中存储吗?

在此先感谢..

回答

0

您可以将数据保存在变量中并稍后填充,除了type =“file”输入字段。如果文件可以预先填充(或者说选择没有用户许可)并且浏览器不允许它,那将是一个安全问题。

一种选择是将文件保存在服务器中的任何临时文件夹中,如果验证正常,则将其移至上传目录。

另一种选择是在步骤(页面)中显示表单并在最后一步显示文件上载选项,以便用户在完成所有验证后可以到达文件上载部分,并且可以在最后一步。

1

也可以用一些变量来存储数据,那么你就可以执行验证

以及我给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> 

以及..这必须工作.. 你可能会发现其他更好的方式..但这也将工作

+0

这是我们可以用于文本框...如何避免文件上传文本值的损失,如临时名称,文件名等...? –

1

据我所知,你不能马像其他表单元素一样保持文件上传值。

如果你仍然想维护$ _FILES值。你可以带他们参加会议。

$_SESSION['imagename'] = $_FILES['image']['name']; 
$_SESSION['imagetmp'] = $_FILES['image']['tmp_name']; 
相关问题