代码之家  ›  专栏  ›  技术社区  ›  TigerTiger

如何允许来自其他域的用户从我的域中搜索记录?

  •  1
  • TigerTiger  · 技术社区  · 15 年前

    在我的网站上,用户可以通过关键字搜索找到想要的结果。(只需简单的关键字搜索,如%abc%或%cde%等)。这一切都很好。

    我有一些合作伙伴网站想在他们的网站上放一个搜索框,从我的网站上搜索记录并显示在他们的网站上。

    我们使用的是php和mysql。合作伙伴网站必须使用类似curl的软件吗?我希望它能使我的合作伙伴网站所做的努力最少,但经过认证。

    所以我的问题是阿瑞斯- -从何处开始? -我必须对现有搜索进行哪些更改?

    • 有什么实际的例子会有帮助吗?(附言:我不是在寻找完整的解决方案,但你知道一些代码有助于理解很多事情)

    谢谢大家。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Daff    15 年前

    好吧,您可以打开整个MySQL套接字,这样它们就可以直接连接,但这将是一个糟糕的解决方案。 因此,您可能想要做的是创建某种简单的WebService,其中另一个软件(如curl)可以以机器可读的形式(例如json或xml)检索数据。只需将搜索结果序列化为正确的格式,而不是将其输出到HTML。

    <?php
    
    $search = array(
        array("id" => 1, "name" => "An item name", "description" => "The item description"),
        array("id" => 2, "name" => "Another name", "description" => "This is a description")
    );
    
    // Of course the array above is just an example. You would probably do something like this:
    $search = find_items(mysql_real_escape($_GET['search']));
    
    echo json_encode($search);
    
    ?>
    

    好的是,您也可以通过Ajax轻松地使用相同的数据。

        2
  •  1
  •   Residuum    15 年前

    curl是一种方法,但在这种情况下,更好的方法是使用SOAP。您基本上为合作伙伴网站设置了一个WSDL(XML文件)来解析,然后向SOAP服务发送适当的请求(例如,身份验证+搜索词),然后返回数据(例如,数组数组(URL、标题、DESC))。

    与curl相反,使用这种方法是对合作伙伴网站的一种可能的身份验证,因此是确定哪个合作伙伴网站生成什么搜索请求等的一种简单方法。

    但这是一个更复杂的解决方案,需要PHP的SOAP扩展(在两侧)。