【问题标题】:Sending data between sites在站点之间发送数据
【发布时间】:2010-12-20 16:18:08
【问题描述】:

在不传递新 URL 参数的情况下,将数据从站点 A 发送到站点 B 的好方法是什么?

例如,在站点 A,我通过表单提交 apples are red。如何在不修改站点 B 的 URL 结构的情况下将该数据发送到站点 B?

示例http://siteb.com/?data=apples+are+red

不确定 trackbacks 或 pingbacks 是否使用类似的方法。

【问题讨论】:

    标签: php forms redirect hyperlink


    【解决方案1】:

    如果您只是想直接将表单提交到 siteb,只需使用 method="get" 和 action="http://siteb.com"

    假设您正在发送一个偏移量,siteb 将使用它来确定来自 arcticles 列表的页码,您在 sitea 上的表单将类似于:

    <form method="get" action="http://siteb.com">
      <input type="text" name="offset" id="offset" value="0" />
      <input type="submit" value="OK" />
    </form>
    

    【讨论】:

    • 站点 A 的“偏移”值 0 可以在站点 B 中检索,而无需传递 URL 参数?
    • 如果您提交这样的表单,如果您不希望参数显示在查询字符串上,它会将您指向siteb.com?offset=0,请使用 method="post"
    • 这并没有说明您将如何知道要发送哪些参数。从他的问题中,他问如何在不改变 siteb 的 url 结构的情况下知道要发送什么。
    【解决方案2】:

    查询字符串,如您上面的示例,但 siteb 需要知道它获取的数据。

    把它想象成联盟计划,你通过查询字符串从你的 sitea 传递一个链接到 siteb(在这种情况下是联盟网站),它可以工作,因为站点 b 知道会发生什么。

    【讨论】:

      【解决方案3】:

      你的意思是:

      $data = 'http://siteb.com?'.$_SERVER['QUERY_STRING'];
      $ch = curl_init($data);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_exec($ch);
      

      【讨论】:

      • 嗯,我还没有机会使用 CURL。我假设我会使用 json 的 REST。你认为 CURL 最适合这种类型的事情吗?
      • 这并不完美,其他站点上的长加载时间/超时会阻止您自己的页面加载,尽管有一些方法可以“忘记”该过程,例如通过 ajax 回发到脚本执行只需在您自己的服务器上执行此任务,因为您不能 XSS 另一个域,这将导致 CURL 查询在您的页面加载后发生并且不会影响您自己的页面加载时间...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      • 2016-08-12
      相关资源
      最近更新 更多