Я прочитал много статей и вопросов, связанных с этим, но мне не удалось это сделать. вот некоторая ссылка 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
Вы подтвердили имена параметров входа в систему и что логин действительно преуспел в вызове curl? Вы можете проверить выход. Yii имеет тенденцию указывать параметры, основанные на индексах внутренних массивов, которые не всегда такие же чистые, как вы указали в параметрах завитка. –
Да, это «вход в систему», который находится в состоянии if ($ this-> Auth-> login()). поэтому это означает, что он аутентифицирован. Но не создание переменной сеанса. Я думаю, из-за домена и поддомена – MKD
Просто заметил, что вы указали кукурузу и файл cookie для завитки - не надо. Просто укажите кукурузу. Ваш логин не должен использовать существующие файлы cookie, а только устанавливать их. –