0

これは私の状況です:

1) a simple_php.php file in webroot folder
2) the users_controller.php in the app/controllers
3) the follow function in the users_controller.php :
function login_flat($user_id){

    $user_data = $this->User->find('first', array(
                                   'conditions' => array('User.id'=>$user_id)));

    if($this->Auth->login($user_data)){

      $this->Cookie->write('User.id', $this->Auth->user('id'), true, '+2 hour');

      $this->Session->setFlash(__('Welcome back !', true));

      $this->redirect(array('controller'=>'posts', 'action'=>'index'));   
      exit();
    }
    else{
      echo 'ERROR!!';
      exit();
    }
}       

(ユーザーにログインするための簡単な機能。注:安全ではないことはわかっていますが、テスト専用です)

さて、ブラウザを介して関数(例www.mysite.com/users/login_flat/13)を呼び出すと、機能します!しかし...私は別のファイル、私のドメインのウェブルートにあるsimple_php.phpを介してそれを呼び出す必要があります。

phpの「ヘッダー」関数を試してみました。login_flat関数に「呼び出し」(リダイレクト)しますが、ログインは機能しません!!! :(

何か提案がありますか?事前にt​​hx。

PS私はcakephp1.2.6を使用しています

- - - - - - - 編集 - - - - - - - - -

私はこれを読んで私の問題を解決します:->解決策

4

1 に答える 1

0

OPから:
これは、simple_phpファイルでリダイレクトに使用するコードです:

header("Location:http://".$subdomain_locale.".".$site_subdomain.".com/users/login_via_app/".$user‌​_id."");

どちらにリダイレクトしますか

/users/login_via_app/13

にリダイレクトする必要があるため、これは間違った URL です。

/users/login_flat/13

また、必ず「exit();」を入れてください。ヘッダーを送信した後、その前に他に何も出力されていないことを確認してください。そうしないと、リダイレクトが機能しません

また、$sudomain_locale 変数と $site_subdomain 変数に正しい値が含まれているかどうかを確認するか、リダイレクトを実行する代わりに、これを使用して URL 全体をデバッグしてください。

echo "this is the URL that will be redirected to:<br>";
print_r("Location:http://".$subdomain_locale.".".$site_subdomain.".com/users/login_via_app/".$user‌​_id."");
exit();
于 2013-02-09T11:48:20.977 に答える