当有人订阅我的列表时,我从我的自动回复器(getResponse)收到GET变量,我需要在另一个GET请求中将这些变量传递给调查提供者。我使用PHP“header()”函数,但“@”字符会从电子邮件中删除。
这是我的PHP代码:
// retrieve email from GET
$email = $_GET['email'];
// pass on email
header("Location: http://surveyprovider.com/surveyID/start?email=$email");
当getResponse调用我的PHP脚本时,假设我得到“email = someguy@someserver.com”。当我的脚本运行时,生成的HTTP调用如下所示:
http://surveyprovider.com/surveyID/start?email=someguysomeserver.com
请注意电子邮件地址中“@”缺少?
如何解决此问题?
我无法使用会话变量(如此问题中建议的那样:How to pass variables received in GET string through a php header redirect?),因为调查提供程序不允许我检索会话变量(没有自定义PHP脚本)。
我该怎么办?
答案 0 :(得分:2)
您需要正确编码该网址。您目前没有发送有效的网址。
header('Location: http://surveyprovider.com/surveyID/start?email=' . urlencode($email));
@
变为%40
:
http://surveyprovider.com/surveyID/start?email=test%40example.com