ゲーム用のサード パーティ スクリプトを起動するユーザー登録ページがあります。ユーザーが許可を受け入れた場合にのみ、このページの読み込みを完了させたいと考えています (HTTP 変数が設定されます)。現在、許可を求めていますが、ページをバックグラウンドで読み込んでいます。この変数がまだ設定されているかどうかを再確認するために、ページを「待機」または「再読み込み」するにはどうすればよいですか?
追加のコントローラー関数
public function add() {
if ($this->User->IGBRequireTrust()) {
if ($this->request->is('post')) {
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
}
}
}
上記で呼び出される Model の public 関数
// Returns TRUE if the user trusts the site, FALSE otherwise.
public function IGBRequireTrust()
{
if($_SERVER['HTTP_EVE_TRUSTED'] != 'yes')
{
echo "<script>CCPEVE.requestTrust('http://*.".$_SERVER['HTTP_HOST']."');</script>";
}
return true;
}
ページが許可を受け入れない場合、ページはセッション フラッシュ メッセージ セットを使用してインデックス機能にリダイレクトする必要があります。IGBRequireTrust 関数を呼び出す場所に else を追加しようとしましたが、常に両方を実行しているようです。
アップデート:
AppController 関数
public function beforeFilter() { $this->Auth->allow('index', 'view');
if($this->name == 'Users' && $this->action == 'add'){
//die('correct controller and action');
if(isset($_SERVER['HTTP_EVE_TRUSTED'])){
if($_SERVER['HTTP_EVE_TRUSTED'] != 'yes' && $this->action != 'promptEveTrusted'){
$this->redirect(array('controller'=>'Users', 'action'=>'promptEveTrusted'));
}
} else {
$this->Session->setFlash(__('Registration is only allowed through the EVE in game browser.'));
$this->redirect(array('controller'=>'Users', 'action'=>'index'));
}
//} else {
// die('wrong controller and action');
}
}