首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取带有长URL的请求

获取带有长URL的请求
EN

Stack Overflow用户
提问于 2013-08-27 07:28:15
回答 2查看 1.1K关注 0票数 0

我需要做一个get请求,这将反过来发送电子邮件。问题是,所有内容都在url中传递,包括html内容。我在这里面临两个问题:

  1. 由于电子邮件内容可以任意长,当我在浏览器中运行时,它显示的URI太大。此外,file_get_contents还显示无效的aqrguement错误。
  2. 当我对HTML进行代码时,我丢失了内联样式标记,因此邮件没有正确显示。

我正在访问一个url,类似

email.php?to=to@to.com&from=from@from.com&subject=subject&html=urlencodedhtml

如果HTML内容不是那么长的话,这是有效的,我用它重写内容中的链接到其他一些urls,以支持跟踪。如何通过URL传递大字符串。

EN

回答 2

Stack Overflow用户

发布于 2013-08-27 07:40:53

使用GET请求将始终对传递给脚本的数据数量设置非常严格的限制。

根据客户端和服务器的不同,可以发送的数据量通常不超过8KB。大多数服务器支持8KB长度的URL。在客户端,MSIE和Safari只支持大约2 KB,Opera大约4 KB,只有Firefox处理8 KB。当然,对于您的用例来说,这还不够。

因此,我担心唯一可能的解决方案是做一个POST请求。

票数 0
EN

Stack Overflow用户

发布于 2013-08-27 07:56:38

请注意,安装了suhosin修补程序的PHP设置对于get参数的默认限制为512个字符。所以你的URl不支持如果用户提供龙的数据,虽然做法不好,对黑客来说是小菜一碟。

检查来源

为此,您可以使用POST,并可以接收第二个页面上的所有变量。

例如:

代码语言:javascript
运行
复制
$to = 'abc@xyz.com';
$subject = 'Your subject here'
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Your Site <abc@abc.com>' . "\r\n";
$message = 'Your Html goes here';

mail($to, $subject, $message, $headers );    
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18459484

复制
相关文章

相似问题

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