2017-04-04 2 views
0

イムプラグインを作るためにCakePHPを使用して、私は..私のように関数を呼び出すmは データベースからデータを(更新)を返すように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);

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

と私はこれをしなかったapiControllerにその関数のgetDataで 私はしばらくの間、あなたは、CakePHP 2.0を使用しているという仮定の下で、この答えを書いています...

答えて

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

関連する問題