【问题标题】:php search form using API data source使用API​​数据源的php搜索表单
【发布时间】:2019-09-26 19:57:18
【问题描述】:

我想构建一个使用 API 提取数据的 PHP 表单。
我有一个 API 密钥和秘密。我通过操纵 URL 完成了一些基本的测试查询,以确保一切正常。

我不知道如何构建 PHP 表单并显示结果。我打算在 JS 中执行此操作,但是 API 密钥和秘密将在 URL 中显示,并且有多个搜索选项。

从我看到其他人询问 php 和 api 的情况来看,连接是这样的:

$apikey = 'xxxx';
$secret = 'xxxx'
$service_url = 'https://website.com/' .'api_key=' . $apikey . '&api_secret='. $secret.  ‘&’ .$criteria . ‘&’ . $criteria2 . ‘&’ .$criteria3;

这是我用于测试的 API URL:

domainnamehere/clients/api/search?api_key=1234&api_secret=1234&state=nsw&given_name=john&surname=smith

json 中的结果如下所示:

[{"state":"NT","date":"2016-08-17","listing_type":"listing info","place":"place info","moreinfo":"","name":"SMITH Dale John","location":"Darwin","file":"1234","additional_info":"1  did something stupid"},{"state":"NT","date":"2016-08-03","listing_type":"listing info","place":"place info","moreinfo":"","name":"SMITH Dale John","location":"Katherine"," file":"4567","additional_info":"1 did some more dumb stuff;2 did even more dumb stuff;3  really dumb stuff;4  even more dumb stuff"}]

我对 PHP 搜索表单有基本的了解,但这似乎超出了我的想象。我猜这将是提交查询和提取数据并格式化它的混合体。

我正在寻找有关如何构建此表单的答案。这将是我放在网站上的搜索表单,并将结果显示在同一页面上。

所以它看起来像这样:

搜索表单:

名称:“输入名称” 姓氏:“输入姓氏” 状态:“进入状态”

结果。

州:昆士兰州
日期:01/01/2019
列表类型:列表信息
地点:地点信息
更多信息:
姓名:史密斯·戴尔·约翰
地点:达尔文
文件:1234
附加信息:1 做了一些愚蠢的事情


州:昆士兰州
日期:01/01/2019
列表类型:列表信息
地点:地点信息
更多信息:
姓名:史密斯·戴尔·约翰
地点:达尔文
文件:1234
附加信息:1 做了一些愚蠢的事情
2 做了更蠢的事
3 真正愚蠢的东西
4 更愚蠢的东西


我知道搜索表单本身应该相对简单,因为它只是将表单字段插入 url。
但是如何从表单提交生成的那个 url 中提取数据并显示它们呢?

【问题讨论】:

  • 除非您在服务器端传递某些东西,否则传递 api 信息的客户端将可以看到该 url,因此我不确定您要隐藏什么。如果担心其他人知道 API 信息,应该使用 https。至于 json,我假设您使用 json_encode 对其进行编码,但您也可以使用 json_decode'() 轻松显示。根据您希望如何将其交付给最终用户将确定如何将其呈现给他们(我知道这是一个显而易见的声明,但是......)。我?我会吐出 json 并让他们按照他们认为合适的方式解析它。
  • 我只担心使用 Javascript 时 URL 是否可见。我将在我的问题中添加更多信息以进行更多解释。感谢您的反馈。

标签: php api search-form


【解决方案1】:

要隐藏 api 密钥和 api 秘密,您需要添加一个新层。

所以你将拥有:

  1. 前端层 (js/html) 在这里,您将对 php 脚本执行 ajax 请求。

有关更多信息,请查看此链接 https://api.jquery.com/jquery.get/

  1. 后端层 (php) 在这里,您将调用 API。调用可以通过 curl 完成。

有关更多信息,请查看此链接 https://www.php.net/manual/en/curl.examples.php

在前端,您将对 scrip.php?name=x&surname=y&state=z 进行 ajax 处理

在 php 上,您将使用 $_GET 获取变量

Apikey 和 secret 只会在 php 中使用,所以它们是安全的

【讨论】:

  • 当然最后一部分是让 PHP 从 API 接收 JSON 数据,或者 a) 将该数据直接传递回浏览器,并让 JavaScript 代码确定如何在其中显示它页面,或者 b) 使用数据构造一些 HTML,然后将其传递回浏览器,所有 JavaScript 代码所要做的就是将其附加到页面的某个位置
猜你喜欢
  • 1970-01-01
  • 2022-10-13
  • 2019-03-31
  • 2015-01-23
  • 1970-01-01
  • 2014-05-26
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多