2013-05-25 2 views
0

Я столкнулся с этой странной проблемой на CakePHP, когда я пытаюсь войти в администрацию моего сайта локально (/ users/login), я ввожу свое имя пользователя и пароль и прекрасно работает но после того, как я загрузил его на удаленный сервер, тот же код, база данных sambe не позволит пользователю войти в систему, он говорит, что имя пользователя/пароль недействительно, но через несколько часов, пытаясь выяснить, что происходит, я обнаружил, что $ запрос переменной внутри AUTHENTICATE метода из FormAuthenticate.php в основном пустой, он приходит, как это в удаленный сервер:

object(CakeRequest) { 
    params => array(
     'plugin' => null, 
     'controller' => 'users', 
     'action' => 'login', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array() 
    query => array() 
    url => 'users/login/' 
    base => '' 
    webroot => '/' 
    here => '/users/login/' 
} 

однако, та же страница, работает локально возвращает:

object(CakeRequest) { 
    params => array(
     'plugin' => null, 
     'controller' => 'users', 
     'action' => 'login', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array(
     'User' => array(
      'password' => '*****', 
      'username' => 'admin' 
     ) 
    ) 
    query => array() 
    url => 'users/login/' 
    base => '' 
    webroot => '/' 
    here => '/users/login/' 
} 

Я пытался найти что-нибудь, что может быть причиной этого, но до сих пор не повезло, я не я новичок в CakePHP, так что я мог бы быть что-то не хватает, спасибо !!


обновление # 1, вот мой метод UserController :: Войти

public function login() { 
     $this->layout = 'default_admin'; 
     if ($this->request->is('post')) { 
      if ($this->Auth->login()) { 
       $this->redirect($this->Auth->redirect()); 
      } else { 
       $this->Session->setFlash(__('Invalid username or password, try again')); 
      } 
     } 
    } 

обновление # 2: Я изменил метод формы от "пост", чтобы "получить" с помощью разработчиков инструменты из хрома, а затем в UserController :: login() Я изменил на: ... if ($ this-> request-> is ('get')) { ... ... , а затем это сработало, но я нужно, чтобы он работал с методом «пост», хотя = \

+2

Можете ли вы поделиться с нами методом 'UsersController :: login()'? – Jelmer

+0

@Jelmer Я только что обновил свой вопрос методом, спасибо заранее! –

ответ

0

Оказывается, серверу необходим перезапуск. Я включил эти две строки, чтобы проверить компонент FileUpload на файле .htaccess:

php_value upload_max_filesize 9999999999M

php_value post_max_size 9999999999M

Тогда он начал вести себя странно, как описано выше, так Я решил перезапустить сервер, и я получил следующее сообщение об ошибке:

«PHP Предупреждение: POST Content-Length из XXX байт exce ред предел -XXX байтов в Unknown в строке 0"

погуглить это я видел, что это было что-то делать с размерами файлов, так что я решил изменить значение от „9999999999M“ в „“ и перезапустил сервер, и теперь все работает отлично.

Извините за такую ​​ошибку новобранец, я действительно новичок в PHP и Cake, и я думал, что мне не нужно перезапускать сервер всякий раз, когда я загружаю новые файлы.

+0

Какие файлы вы загружали? Потому что вам не нужно перезагружать сервер при загрузке файлов. По крайней мере, мне никогда не приходилось это делать раньше. Или вы редактировали файл php.ini? – Jelmer

+0

@Jelmer действительно я отредактировал php.ini, так вот почему мне пришлось перезапустить сервер?Я не знал об этом, спасибо большое = D –

+1

Да. Поскольку Apache необходимо «перечитать» файл. Это не произойдет, если он не был перезапущен :) Возможно, перезагрузка будет, но я не совсем уверен в этом. – Jelmer

Смежные вопросы