我正在创建一个基于向导的一系列表单来获取用户输入。该向导的要求之一是脚本(PHP)在用户单击“保存”按钮之前无法将输入保存到数据库(MySQL)中,因此我必须设计一种机制以将用户输入以一种形式传输到另一种形式当用户单击“上一个”或“下一个”按钮时。我研究了使用各种方法,包括 cookie、会话、临时文件等,但我决定将 base64_encoded 序列化数据嵌入到该系列中所有表单中存在的隐藏字段中。此字段中的值将在表单提交时进行解码,并在插入当前表单的其他值后重新编码以放入下一个表单。
以下是隐藏字段的外观示例:
<input type="hidden" name="wizard:presave" value="YTo2OntzOjU6InRpdGxlIjtzOjEwOiJRdWVzdGlvbiAyIjtzOjQ6InRleHQiO3M6MTk6IlllcyBpdCdzIGEgcXVlc3Rpb24iO3M6NDoidHlwZSI7czo2OiJjaG9pY2UiO3M6NzoiY2hvaWNlcyI7YTowOnt9czo1OiJwb2ludCI7aToxO3M6Mjoib3AiO3M6MTM6ImVkaXRfZXhlcmNpc2UiO30=" />
所以问题是:
它被认为是一种好/坏的做法吗?
HTMLform 中隐藏字段的长度是否有限制?
有哪些可能的安全问题?
还有更好的选择吗?(有解释,最好不使用javascript)
提前致谢!