首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -如何将未转义的长字符串从一个页面传递到另一个页面?

PHP -如何将未转义的长字符串从一个页面传递到另一个页面?
EN

Stack Overflow用户
提问于 2009-08-30 18:05:12
回答 5查看 4.7K关注 0票数 0

我想将一个长字符串传递到第二个页面。通常,我将短字符串作为变量进行传递

代码语言:javascript
运行
复制
www.example.php?var=something&var2=somethingelse

不过,在这种情况下,我想把一个很长的句子传到第二页,而不必把所有的空格都换成破折号,处理逗号和撇号。

有没有一个简单的方法可以做到这一点,我错过了?我需要重新查询数据库吗?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-30 18:18:52

使用urlencodehttp_build_query。那么就不需要解码消息了。

base64不是一种加密,几乎每个程序员都能发现并转换它。你不应该依赖它作为从一个页面到另一个页面发送消息的安全方法。

如果您只希望它不被篡改,您还可以发送字符串的散列,以及服务器的秘密盐。

代码语言:javascript
运行
复制
$salt = 'longsecretconstanttexthere'; 
$url .= '?' . http_build_query(array('text' => $str, 'hash' => md5($str . $salt));

接收结束:

代码语言:javascript
运行
复制
$str = $_GET['text'];
if ($_GET['hash'] !== md5($str . $salt)) {
  //not the original string
}

对于加密方法,请使用密钥将文本存储在$_SESSION或db中。将密钥发送到下一页。

票数 4
EN

Stack Overflow用户

发布于 2009-08-30 18:31:17

传递长值是没有问题的,这就是urlencode()函数的作用:

代码语言:javascript
运行
复制
$link = 'www.example.com?longValue=' . urlencode($arbitraryLengthString);

你不需要手动解码,这是由PHP自动完成的。但是,如果它是一个非常长的值,并且您打算在许多页面上使用它,那么将它放入session中可能会更好。

票数 5
EN

Stack Overflow用户

发布于 2009-08-30 18:08:36

base 64对其进行编码,然后在另一页接收到GET参数时再次解码

代码语言:javascript
运行
复制
$str = "I'm an obnoxious string, meh meh"
$str = base64_encode($str);

** Echo link **

然后在接收页面上

代码语言:javascript
运行
复制
$str = base64_decode($_GET['str']);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1354477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档