我想将一个长字符串传递到第二个页面。通常,我将短字符串作为变量进行传递
www.example.php?var=something&var2=somethingelse不过,在这种情况下,我想把一个很长的句子传到第二页,而不必把所有的空格都换成破折号,处理逗号和撇号。
有没有一个简单的方法可以做到这一点,我错过了?我需要重新查询数据库吗?
谢谢
发布于 2009-08-30 18:18:52
使用urlencode或http_build_query。那么就不需要解码消息了。
base64不是一种加密,几乎每个程序员都能发现并转换它。你不应该依赖它作为从一个页面到另一个页面发送消息的安全方法。
如果您只希望它不被篡改,您还可以发送字符串的散列,以及服务器的秘密盐。
$salt = 'longsecretconstanttexthere';
$url .= '?' . http_build_query(array('text' => $str, 'hash' => md5($str . $salt));接收结束:
$str = $_GET['text'];
if ($_GET['hash'] !== md5($str . $salt)) {
//not the original string
}对于加密方法,请使用密钥将文本存储在$_SESSION或db中。将密钥发送到下一页。
发布于 2009-08-30 18:31:17
传递长值是没有问题的,这就是urlencode()函数的作用:
$link = 'www.example.com?longValue=' . urlencode($arbitraryLengthString);你不需要手动解码,这是由PHP自动完成的。但是,如果它是一个非常长的值,并且您打算在许多页面上使用它,那么将它放入session中可能会更好。
发布于 2009-08-30 18:08:36
base 64对其进行编码,然后在另一页接收到GET参数时再次解码
$str = "I'm an obnoxious string, meh meh"
$str = base64_encode($str);
** Echo link **然后在接收页面上
$str = base64_decode($_GET['str']);https://stackoverflow.com/questions/1354477
复制相似问题