2017-04-04 52 views
0

即時通訊使用CakePHP做插件,所以我也apiController返回從數據庫數據(更新).. 我打電話是函數爲:的CakePHP不能在URL中讀取令牌傳遞

$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);

,並在該函數的getData在apiController我這樣做:

if((isset($this->params["url"]["token"])) 
 
&&($this->params["url"]["token"]==hash("sha256","appliTest".strtotime(date('Y-m-d'))))){ 
 
die("ok"); 
 
}

感謝幫助...

回答

0

我而假設下,你使用CakePHP 2.0編寫這個答案。

Request and Response文檔聲明您可以通過調用$this->request->query['page'];從URL獲取查詢。

例子:

// URL is /posts/index?page=1&sort=title 
$page = $this->request->query['page']; 

在這個例子中$post將包含1 該文檔還指出:

您可以直接訪問$查詢屬性,也可以使用CakeRequest :: query()以無錯方式讀取URL查詢數組。不存在任何鍵將返回null:

$foo = $this->request->query('value_that_does_not_exist'); 
// $foo === null 

這意味着,如果你想獲取不存在查詢,你會在error message代替獲得一個零如果沒有正確捕獲。

所以讓你的令牌,你必須做的線沿線的東西:

<?php 

$token = $this->request->data('token'); 

if($token != null && ($token == hash("sha256","appliTest".strtotime(date('Y-m-d'))))){ 
    die("ok"); 
} 
+0

感謝的回答,但問題還是一樣的! – Fredj

+0

問題可能存在於其他地方嗎?也許運行CakePHP的Web服務器會剝離查詢字符串,或者將代碼放在錯誤的控制器中?可能是生成請求的代碼部分中的URL不正確。 – Sevvlor

+0

現在它的工作,我的意思是令牌存在,而不是nul,但內容不像其他時,我稱之爲功能! – Fredj