2010-08-18 131 views
0

我很难弄清楚这一点。我甚至不确定是否有可能..我会很感激任何形式的帮助!将变量从一个站点传递到另一个站点

在现场,我有一个重定向到站点B.当点击一个网站的链接的链接(联属类型的链接),我使用这个脚本来重定向..

header('HTTP/1.1 301 Moved Permanently'); 
header('Location: ' . $url); 
exit; 

的$网址var只是网站的“A”网址。我无法弄清楚的是,如何在不使用URL本身的查询字符串的情况下将重定向脚本中的变量传递到站点B(例如,http://www.siteB.com/?var_to_pass=something

此外,两个站点都位于不同的服务器上,所以我我不确定会议是否有效。但是,在网站之间我有一个脚本,我希望我可以用某人来实现我所需要的。

回答

2

只有一种方法可以通过重定向在站点之间传递数据,就像您在做的那样,通过查询变量在URL中传递数据。您无法通过POST重定向浏览器,因此GET是您唯一的选择。

+1

当然,你可以...你需要的只是一点点的JavaScript ...渲染的JavaScript,然后将发布的请求。 – ircmaxell 2010-08-18 20:38:34

+0

是的,但像往常一样,如果JavaScript未启用,该怎么办? – 2010-08-18 20:48:50

+0

@ircmaxell如果用户没有JS,就会失败的可怕的黑客想法 – meagar 2010-08-18 20:49:41

1

你可以用POST和javascript来做,但它不够漂亮(或可靠)。只需填写身体onLoad事件提交的表单即可。

你只是想隐藏变量?你可以这样做:

www.sitea.com -> (redirect) -> www.siteb.com/incoming?var=blah 
# then 
www.siteb.com/incoming?var=blah -> (redirect) -> www.siteb.com/ 

它会如此之快,用户甚至不会看到最终的结果是,网站B从站点A获取变量和用户在一个干净的期待网址最终发生。

+0

这很整洁!谢谢:)但是,一旦站点b重定向,我也能存储'blah'吗? – 2010-08-18 22:33:22

+0

您需要将其手动存储到传入页面(在会话中)。这样,网站b就可以在需要时访问它。 – 2010-08-19 17:25:24

0

或者,您可以使用curl(但请注意,如果您想重定向,您必须使用上述解决方案,它不会重定向)发送和接收从一台服务器到另一台服务器的变量,保存你的变量在某个地方(数据库)..