【发布时间】:2015-10-06 19:01:46
【问题描述】:
我有一个 HTML 表单,它允许用户使用 PHP 的 $_FILES 变量上传文件。
文件上传后,我会针对$_FILES进行一些错误检查,例如$_FILES["size"]。
而不是在同一页面上调用move_uploaded_file() 并完成上传。我有另一个提交到第二页的 HTML 表单。 $_FILES 中的数据通过 hidden input types 以 POST 形式传递。
问题:
我不想将值作为简单文本传递,而是希望对文本进行加密(打包),然后在提交后将其解包回下一页上的正常值。
到目前为止,我尝试使用base64_encode 打包内容,然后使用base64_decode 解包,但问题是base64_encode 没有动态更改值。
我知道无论如何都可以修改请求,这只是为了减少技术用户无法欺骗我的网站
【问题讨论】:
-
听起来您正在尝试重塑
$_SESSION。 PHP 已经为您提供了与用户一起存储某些状态的地方。 -
会话在我的网站上对我来说效果不佳。例如,如果他们在两个选项卡中上传两次,则第一个将被覆盖。
-
这听起来好像你做错了。重新发布同一个文件(到同一个服务器?)会让你进入 Rube Goldberg 的领域。如果您只想允许每个用户上传一次,请在您的数据库中跟踪该事实,并禁止进一步上传。一旦你从用户那里得到文件并且你已经检查它是有效的,为什么还要麻烦编码/重新发布?
-
“我希望对文本进行某种加密” 你说的文本是什么意思?您正在谈论使用表格发布文件,然后您切换到谈论文本。你能解释一下你是什么意思吗?也许如果你发布一些关于你迄今为止尝试过的代码这对我们来说会更好理解!
-
@DigitalChris 问题是,我允许上传而不需要注册。所以有办法跟踪他们是否是有效用户。
标签: php html forms file-upload