PHP,通过 POST 传递数组
哪种方式是发送数组的最安全方式?POST
foreach ($id as $array)
{
<input type="hidden" name="prova[]" value="<?php echo $array; ?>"/>
}
<input type="submit" name="submit"/>
或者用于创建单个变量,传递变量,然后用于将值取回新数组?implode()
explode()
哪种方式是发送数组的最安全方式?POST
foreach ($id as $array)
{
<input type="hidden" name="prova[]" value="<?php echo $array; ?>"/>
}
<input type="submit" name="submit"/>
或者用于创建单个变量,传递变量,然后用于将值取回新数组?implode()
explode()
编辑如果您要询问安全性,请参阅底部的附录 编辑
PHP 具有为此特定目的提供的序列化函数。向它传递一个数组,它将为您提供它的字符串表示形式。如果要将其转换回数组,只需使用反序列化函数即可。
$data = array('one'=>1, 'two'=>2, 'three'=>33);
$dataString = serialize($data);
//send elsewhere
$data = unserialize($dataString);
这通常被懒惰的编码人员用来将数据保存到数据库中。不推荐,但可以作为快速/肮脏的解决方案。
补遗
我的印象是,您正在寻找一种可靠地发送数据的方法,而不是“安全地”。。无论你如何传递数据,如果它通过用户系统,你根本不能信任它。通常,您应该将其存储在服务器上的某个位置,并使用凭据(cookie,会话,密码等)进行查找。
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'),
)
?>
名称标记可以用作数组。