我有一个脚本,在用户接受之前预览输入的数据,它需要重新发布表单数据,以便最终处理它,一些数据是以数组形式和数据形式。我找了一个有效的功能来执行我找不到的功能,所以我创建了这个:
function repost_array ($value, $key, $mkey) {
echo draw_hidden_field($mkey.'[' . $key . ']', htmlspecialchars(stripslashes($value)));
}
/* Re-Post all POST'ed variables */
reset($_POST);
while (list($key, $value) = each($_POST)) if (!is_array($_POST[$key])) echo draw_hidden_field($key, htmlspecialchars(stripslashes($value)));
reset($_POST);
while (list($key, $value) = each($_POST)) if (is_array($_POST[$key])) array_walk_recursive($_POST[$key], 'repost_array', $key);
请告知是否有更好的方法或错过了什么(我没有测试递归功能的深度)。
答案 0 :(得分:1)
您可以重新发布这些值,但我建议使用其他替代方法,例如$_SESSION
超级全局,类似于:
<?php
session_start();//session start has to be at the very top of your page!
?>
<!-- ... your html code -->
<?php
// ... your php code...
$_SESSION['key'] = $_POST['key'];
从那里,您可以在代码中的任何位置使用$_SESSION['key']
来获取存储的值(只要会话处于活动状态,这取决于您的配置通常大约30分钟但可以更长,例如7天)