2015-06-12 6 views
0

Я прочитал много статей и вопросов, связанных с этим, но мне не удалось это сделать. вот некоторая ссылка refer1refer2 То, что я хочу, - это войти на сайт через завиток. То, что я сделал, приводится ниже. Его на локальной системеКак я могу войти с помощью curl на веб-сайт

URL для этого http://192.168.1.31/Eb/user/login/loginnew

public function actionLoginnew() 
    { 
     $fields = array(
         'User'=>array(
         'email' => '[email protected]', 
         'password' => 'yyyyyy' 

          ) 
         ); 
     $urltopost="http://192.168.1.31/Eb/projectmanager/login"; 
     $ckfile = tempnam ("/tmp", 'cookiename'); 

     $fields_string = http_build_query($fields);    
     $ch = curl_init ($urltopost); 
     curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
     curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
     curl_setopt ($ch, CURLOPT_POST, true); 

     curl_setopt ($ch, CURLOPT_POSTFIELDS, $fields_string); 
     curl_setopt ($ch, CURLOPT_RETURNTRANSFER, false); 
     $returndata = curl_exec ($ch); 
     $headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); 
     curl_close ($ch); 
     print_r($headers);die; 
    } 

это моя функция юй и сайт я хочу войти в это в торт PHP.

показывает мне, что логин сделан. Но когда я ударил по URL http://192.168.1.31/Eb/projectmanager/, он снова перенаправляет меня на страницу входа.

Войти скрипт на http://192.168.1.31/Eb/projectmanager/login

public function admin_login() 
    { 
     $this->__login(); 
     $this->render('admin_login'); 
    } 


    private function __login() 
    { 
     $this->layout = 'default'; 

     if (AuthComponent::user()) 
      $this->redirect(array('controller' => 'projects', 'action' => 'index')); 

     if ($this->request->is('post')) 
     { 
      $this->User->set($this->request->data); 
      if ($this->Auth->login()) 
      { 
       echo "logged in"; 
       if ($this->request->data['User']['remember_me'] == 1) 
       { 
        unset($this->request->data['User']['remember_me']); 
        $this->request->data['User']['password'] = $this->Auth->password($this->request->data['User']['password']); 
        $this->Cookie->write('cepp_pauth', $this->request->data['User'], true, '2 weeks'); 
       } 

       if (!AppAuth::is(UserRoles::Admin) && AppConfig::read('System.maintenance') === true) 
       { 
        $this->Session->setFlash(__('The system is in maintenance mode.'), Flash::Error); 
        $this->redirect($this->Auth->logout()); 
       } 

       $this->Session->setFlash(__('You successfully logged in.'), Flash::Success); 
       if (!empty($this->request->params['admin'])) 
        $this->redirect(array('controller' => 'projects', 'action' => 'index')); 
       else 
        $this->redirect($this->Auth->redirectUrl()); 
      } else 
      { 
       unset($this->request->data['User']['password']); 
       $this->Session->setFlash(__('The username/password you provided were incorrect.')); 
      } 
     } 
     $this->set('title_for_layout', __('Login')); 
    } 

файла печенья является генерировать и содержание

# Netscape HTTP Cookie File 
# http://curl.haxx.se/rfc/cookie_spec.html 
# This file was generated by libcurl! Edit at your own risk. 

#HttpOnly_192.168.1.31 FALSE / FALSE 1434106233 CLIENTENGAGE in7nhb9gd2l24fioso3cq0ol16 

пожалуйста, помогите мне решить эту проблему .THANKS

+0

Вы подтвердили имена параметров входа в систему и что логин действительно преуспел в вызове curl? Вы можете проверить выход. Yii имеет тенденцию указывать параметры, основанные на индексах внутренних массивов, которые не всегда такие же чистые, как вы указали в параметрах завитка. –

+0

Да, это «вход в систему», который находится в состоянии if ($ this-> Auth-> login()). поэтому это означает, что он аутентифицирован. Но не создание переменной сеанса. Я думаю, из-за домена и поддомена – MKD

+0

Просто заметил, что вы указали кукурузу и файл cookie для завитки - не надо. Просто укажите кукурузу. Ваш логин не должен использовать существующие файлы cookie, а только устанавливать их. –

ответ

0

Войти скрипт, который вы должны написать в http://192.168.1.31/Eb/projectmanager/login

совпадают с пройденными полномочиями и задают сеанс успеха.

+0

, пожалуйста, проверьте, что я добавил свой скрипт на этой странице. – MKD

+0

Вам нужно проверить, что возвращает $ this-> Auth-> login(). –

+0

возвращает true или false. и я иду в этом состоянии. потому что отклика отклика печатается «вошел в систему»; – MKD

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