通过POST发送数组最安全的方式是什么
foreach ($id as $array)
{
<input type="hidden" name="prova[]" value="<?php echo $array; ?>"/>
}
<input type="submit" name="submit"/>或者使用implode()创建单个变量,传递变量,然后使用explode()将值返回到新的数组中?
发布于 2012-12-28 23:20:23
编辑如果您想了解有关安全性的问题,请参阅底部编辑中的附录
PHP提供了一个用于此特定目的的serialize函数。向它传递一个数组,它将为您提供该数组的字符串表示。当您想要将其转换回数组时,只需使用unserialize函数。
$data = array('one'=>1, 'two'=>2, 'three'=>33);
$dataString = serialize($data);
//send elsewhere
$data = unserialize($dataString);这通常被懒惰的程序员用来将数据保存到数据库中。不推荐使用,但可以作为快速/粗糙的解决方案。
附录
我的印象是,您正在寻找一种可靠的方式发送数据,而不是“安全”。无论您如何传递数据,如果它是通过用户系统传递的,那么您根本不能信任它。通常,您应该将其存储在服务器上的某个位置&使用凭据(cookie、会话、密码等)来查找它。
发布于 2015-03-23 19:07:48
http://php.net/manual/en/reserved.variables.post.php
第一条评论回答了这个问题。
<form ....>
<input name="person[0][first_name]" value="john" />
<input name="person[0][last_name]" value="smith" />
...
<input name="person[1][first_name]" value="jane" />
<input name="person[1][last_name]" value="jones" />
</form>
<?php
var_dump($_POST['person']);
array (
0 => array('first_name'=>'john','last_name'=>'smith'),
1 => array('first_name'=>'jane','last_name'=>'jones'),
)
?>name标记可以作为数组工作。
发布于 2012-12-28 23:24:13
您可以将其放入会话中:
session_start();
$_SESSION['array_name'] = $array_name;或者,如果你想通过表单发送它,你可以序列化它:
<input type='hidden' name='input_name' value="<?php echo htmlentities(serialize($array_name)); ?>" />
$passed_array = unserialize($_POST['input_name']);请注意,要使用序列化的数组,需要使用POST作为表单的传输方法,因为GET的大小限制在1024个字符左右。
只要可能,我都会使用会话。
https://stackoverflow.com/questions/14071587
复制相似问题