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 位于我的域的 webroot 中。

我尝试使用 php“标题”功能。它“调用”(重定向)到 login_flat 函数,但登录不起作用!!!:(

有什么建议吗?提前谢谢。

PS我正在使用cakephp 1.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

哪个是错误的网址,因为它应该重定向到

/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 回答