使用get方法编码的表单数据base64

时间:2016-07-12 09:20:58

标签: php html encoding base64

我需要能够使用以base64编码的数据从html表单提供自定义网址。

例如:

<form name="test" action="test.php" method="get">
 <input type="text" name="category" />
 <input type="text" name="gender" />
 <input type="text" name="quantity" />
</form>

获取网址:

test.php?Y2F0ZWdvcnk9c3BvcnRzJmdlbmRlcj1mZW1hbGUmcXVhbnRpdHk9NTA=

感谢。

3 个答案:

答案 0 :(得分:1)

如果我们假设Y2F0ZWdvcnk9c3BvcnRzJmdlbmRlcj1mZW1hbGUmcXVhbnRpdHk9NTA=是预期的输出,我们将首先解码它以查看它的外观:

category=sports&gender=female&quantity=50

这正是您的GET表单的查询字符串,因此我们可以从$_SERVER['QUERY_STRING']中获取值。

要编码的内置函数是base64_encode(),我们也可以使用built-in operator连接字符串。最后,我们可以使用另一个名为rawurlencode()的内置函数对URL组件进行编码。所以我们拥有所有砖块:

$url = 'test.php?' . rawurlencode(base64_encode($_SERVER['QUERY_STRING']));

答案 1 :(得分:0)

您应该首先发布表单,然后执行以下操作:

$data = json_decode( base64_decode( $_GET['data'] ) );
// Sanitize data again

我使用了json_encode,因为只有base64可以改变数据的含义。 查看有关该主题的文章:Passing base64 encoded strings in URL

然后在test.php上:

{{1}}

答案 2 :(得分:0)

您不需要使用其他数组 只需使用此代码

$codedData = base64_encode(json_encode($_POST));
$decodedData = json_decode(base64_decode($orderEncode) , true);