Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 哪个发送隐藏表单数据或从数据库获取数据更快_Php_Database_Forms_Security_Hidden - Fatal编程技术网

Php 哪个发送隐藏表单数据或从数据库获取数据更快

Php 哪个发送隐藏表单数据或从数据库获取数据更快,php,database,forms,security,hidden,Php,Database,Forms,Security,Hidden,我正在使用隐藏表单发送值。带有提交按钮 就像: <form action="users.php?action=edit" method="POST"> <input type="hidden" name="first_name" value="Josh" size="20" maxlength="19"/> <input type="submit" name="done" value="Done"/> </form> 我将在我创建的下一个表单

我正在使用隐藏表单发送值。带有提交按钮

就像:

<form action="users.php?action=edit" method="POST">
<input type="hidden" name="first_name" value="Josh" size="20" maxlength="19"/>
<input type="submit" name="done" value="Done"/>
</form>

我将在我创建的下一个表单中使用这些值。我不知道这样做还是从数据库获取数据更好。另外,哪一个更安全?

速度是可变的

更重要的问题是什么更安全:如果将信息存储在表单上,恶意用户可能会更改它

永远不要信任来自web表单的任何数据-始终检查和验证它

我记得一个可能是虚构的故事,讲的是一家早期的网络商店如何将价格存储在表单上的一个隐藏字段上,并对销售水平感到高兴,但却发现由于欺诈消费者的现场干预,这些销售的价格大大降低了


请参见

从数据库获取数据更安全,因为数据不能被篡改。 如果您将它放在一个隐藏字段中,它将显示可以修改的php变量的值

我猜“Josh”是要编辑的用户,只有登录的“Josh”用户才能编辑。如果您毫不犹豫地向用户显示隐藏字段中的数据,则可以使用隐藏字段

请注意,用户可以篡改表单字段中的值。用户可以在HTTP请求中添加/更改的所有内容都需要在您的服务器上进行验证(如果这是一个合理的值,如果用户实际上有权编辑“Josh”等)

在您的示例中,没有使用隐藏字段的真正原因:

<form action="users.php?action=edit&first_name=Josh" method="POST">
<input type="submit" name="done" value="Done"/>
</form>


关于速度:对于少量数据,隐藏字段版本可能会更快,因为您可以避免整个数据库往返(连接、事务、断开连接)。PHP不保留连接池,连接到数据库的成本很高

我猜它是从数据库中获取数据的
首先人们可以操作数据和secound我猜你的数据库是本地主机或在同一个网络中-这使得它比通过internet发送更快,而且更安全

另一个选项会话另一个cookies。此外,maxlength和隐藏输入上的大小it pointlessI将建议会话。表单可能会被劫持,数据库有时会变慢(取决于检索到的数据量、访问者等)。到目前为止,会话是我最喜欢的。在进程的最后一步之前,不需要将任何东西保存到数据库中。当然,当你开始考虑缩放和WebGrand时,会话是有问题的。谢谢你的观点,当然还有最大长度和隐藏输入的大小。达贡·安德鲁·波迪卢斯卡。我想我会使用会话。两者都会更快更安全吗?大概OP会连接到数据库来更新值?