我使用cakephp制作插件,所以我做了apiController从数据库返回数据(更新)。 我把这个函数称为:
$token = hash("sha256","appliTest".strtotime(date('Y-m-d')));
$date = strtotime(date('Y-m-d'));
$api_data = file_get_contents("http://local.mywebsite.com/appliTest/
api/getData?token=".$token);

在apiController中的函数getData中我做了这个:
if((isset($this->params["url"]["token"]))
&&($this->params["url"]["token"]==hash("sha256","appliTest".strtotime(date('Y-m-d'))))){
die("ok");
}

感谢帮助...
答案 0 :(得分:0)
我在假设你正在使用CakePHP 2.0时写这个答案。
Request and Response文档指出您可以通过调用$this->request->query['page'];
从网址获取查询。
示例:强>
// URL is /posts/index?page=1&sort=title
$page = $this->request->query['page'];
在此示例中,$post
将包含1。
该文件还指出:
您可以直接访问$ query属性,也可以使用CakeRequest :: query()以无错误的方式读取URL查询数组。任何不存在的键都将返回null:
$foo = $this->request->query('value_that_does_not_exist');
// $foo === null
这意味着如果您尝试获取的查询不存在,如果未正确捕获,您将获得null而不是error message。
所以要获得你的令牌,你必须按照以下方式做一些事情:
<?php
$token = $this->request->data('token');
if($token != null && ($token == hash("sha256","appliTest".strtotime(date('Y-m-d'))))){
die("ok");
}