[решено] Помогите заполнить форму через EHttpClient

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

[решено] Помогите заполнить форму через EHttpClient

Сообщение Ghost_nsk »

товарищи, помогите сообразить post запрос путем использования расширения EHttpClient, чтобы заполнить форму в yii

1) например, экшн с формой:

Код: Выделить всё

<?php
// клепаем модельку
$model = new Promo();
        if(isset($_POST['Promo'])){
            $model->attributes = $_POST['Promo'];
            if($model->validate()){
                $model->save();
            };
        }
        
// пошла форма
$form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
    'id'                   => 'data-form',
));
echo $form->textFieldRow($model, 'name', array('class' => 'span2'));
echo $form->textFieldRow($model, 'phone', array('class' => 'span2'));

echo '<br/><br/>';
$this->widget('bootstrap.widgets.TbButton', array(
    'buttonType' => 'submit',
    'type'       => 'primary',
    'size'       => 'large',
    'icon'       => 'ok white',
    'label'      => $model->isNewRecord ? 'Готово!' : 'Обновить информацию',
));
?>
<?php $this->endWidget(); ?>
2) и есть экшн с ehttpclient:

Код: Выделить всё

Yii::import('ext.EHttpClient.*');
Yii::import('ext.EHttpClient.adapter.*');

$url = 'http://mysite.ru/test';
$data = array(
    'Promo[name]' => 'name',
    'Promo[phone]' => 'phone',
);

$client = new EHttpClient($url);
$client->setParameterPost($data);
$response = $client->request('POST'); 
вроде ошибок не показывает, однако форма не отрабатывает, и в базе ниче нового не появляется
Последний раз редактировалось Ghost_nsk 2013.11.20, 11:58, всего редактировалось 1 раз.
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: Помогите заполнить форму через EHttpClient

Сообщение Nafania »

Вы отправили запрос, а дальше проверки у вас нет, ушел ли он вообще, не ответил ли сервер ошибкой.
После
$response = $client->request('POST');
добавьте
$body = $response->getBody();
var_dump($body);

и смотрите, что там у вас сайт ответил.
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Помогите заполнить форму через EHttpClient

Сообщение Ghost_nsk »

Nafania писал(а):Вы отправили запрос, а дальше проверки у вас нет, ушел ли он вообще, не ответил ли сервер ошибкой.
После
$response = $client->request('POST');
добавьте
$body = $response->getBody();
var_dump($body);

и смотрите, что там у вас сайт ответил.
ответ: string(13939) "
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: Помогите заполнить форму через EHttpClient

Сообщение Ghost_nsk »

print_r($response)

Код: Выделить всё

EHttpResponse Object
(
    [version:protected] => 1.1
    [code:protected] => 200
    [message:protected] => OK
    [headers:protected] => Array
        (
            [Server] => nginx/1.4.3
            [Date] => Wed, 20 Nov 2013 04:45:58 GMT
            [Content-type] => text/html
            [Transfer-encoding] => chunked
            [Connection] => close
            [Set-cookie] => PHPSESSID=aehlp3g9k69563edpuaabsqcu3; path=/
            [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
            [Cache-control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
            [Pragma] => no-cache
            [Content-encoding] => gzip
        )

    [body:protected] => 1130
    [b]много много много кракозябров[/b]
 
Аватара пользователя
Ghost_nsk
Сообщения: 825
Зарегистрирован: 2012.01.01, 00:45
Откуда: Новосибирск
Контактная информация:

Re: [решено] Помогите заполнить форму через EHttpClient

Сообщение Ghost_nsk »

не знаю почему, создал другой экшен с нуля, все так же прописал и запахало :)
Ответить