0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 4396 Просмотров
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
Задача отправить из 1с запрос  post и обработать его на сайте, в 1с все сделано. Запрос посылается.

Если подключаюсь, через 1с, то получаю  405 Not Allowed,
но если вбиваю строку в браузере
Код
administrator/index.php?option=com_jshopping&controller=products&task=uploadfoto&product_id=1
то все получается

Доработал контроллер на бекэнд
public_html/administrator/components/com_jshopping/controllers/products
дописал свой метод "uploadfoto"

Код в контроллере компонента jshopping
Код
 public  function uploadfoto(){
       // $jshopConfig = JSFactory::getConfig();
        //require_once($jshopConfig->path.'lib/image.lib.php');
       // require_once($jshopConfig->path.'lib/uploadfile.class.php');
        

        //$dispatcher = JDispatcher::getInstance();

        $db = JFactory::getDBO();
        $post = JRequest::get('post');
      $_products = JSFactory::getModel("products");
        $product = JSFactory::getTable('product', 'jshop');
        $_alias = JSFactory::getModel("alias");
        $_lang = JSFactory::getModel("languages");

 var_dump($db);
       var_dump($post);
        var_dump($_products);
        var_dump($product);
        var_dump($_alias);
        var_dump($_lang);
        var_dump($id_vendor_cuser);
        var_dump($product_id);





Из 1c отправляю на сайт сообщение вида

Код
--b863a1db46a2481c9bc5e4969613adfd
Content-Disposition: form-data; name="datafile"; filename="product_image_1"
Content-Type: application/x-octet-stream

"двочные данные текст текст текст"

--b863a1db46a2481c9bc5e4969613adfd
--b863a1db46a2481c9bc5e4969613adfd
Content-disposition: form-data; name="decode"

1
--b863a1db46a2481c9bc5e4969613adfd
--b863a1db46a2481c9bc5e4969613adfd--


Я так понимаю мне как-то надо залогиниться в Joomla, может что-то еще надо дописать в запрос для сервера?
Подскажите кто сталкивался пжлст

картинка для наглядности
https://gyazo.com/a272ad5c1566508bf816509aa3c14dd5
« Последнее редактирование: 03.03.2017, 11:04:11 от xDD »
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
Создал файл Foto.php описал в нем  JshoppingControllerFoto в нем описал метод
Код
public  function uploadfoto(){
        $post = JRequest::get('post');
        var_dump($post);
, разместил на /public_html/components/com_jshopping/controllers стучусь к нему через 1с по адресу http://сайт/component/jshopping/Foto

посылаю в post

Код
--b863a1db46a2481c9bc5e4969613adfd
Content-Disposition: form-data; name="datafile"; filename="product_image_1"
Content-Type: application/x-octet-stream

/здесь двоичный код картинки/
--b863a1db46a2481c9bc5e4969613adfd
--b863a1db46a2481c9bc5e4969613adfd
Content-disposition: form-data; name="login"

itsmylogin
--b863a1db46a2481c9bc5e4969613adfd
Content-disposition: form-data; name="password"

53634643
--b863a1db46a2481c9bc5e4969613adfd
--b863a1db46a2481c9bc5e4969613adfd--


В итоге все работает, то есть через контроллер фронтэнда получаю данные, но я хочу получать данные через контроллер бекэнда то есть сначала залогиниться  а потом уже работать с  данными в моделе.
Подскажите что делаю не так?
Как залогинться при посылке запроса не сервер через пост в Joomla?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Как залогинться при посылке запроса не сервер через пост в Joomla?
никак, если надо можно проверить на фронте, вот пример кода
Код
    protected function authenticateUser($username, $password)
    {
        $admin_group_id = 10;
        jimport('joomla.user.authentication');
        $auth = JAuthentication::getInstance();
        $credentials = array(
            'username' => $username,
            'password' => $password
        );
        $options = array();
        $response = $auth->authenticate($credentials, $options);
       
        if ($response->status !== 1) {
            die($response->error_message);
        }
       
        $user = JUser::getInstance(JUserHelper::getUserId($username));
        if (! in_array($admin_group_id, $user->groups)) {
            die('Не достаточно прав у пользователя');
        }
       
        return $user->id;
    }

*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
То есть пользоваться контроллерами, которые доступны только в админ панели посредством  http запросов я не смогу?

Получается что мне придется посылать запрос на контроллеры сайта посылать логин и пароль и смотреть можно ли мне запускать мои методы?
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
да, ну или можно отдельно отправлять запрос на авторизацию в админку, получать куку и потом запросы передавать с этой кукой
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
А как получать куку?
*

xDD

  • Захожу иногда
  • 300
  • 4 / 0
Написал модель class JshoppingModelFoto  добавил файл Foto.php в //public_html/components/com_jshopping/models/
В контроллере JshoppingControllerFoto в методе  uploadfoto, хочу получить модель
Код
  $_products = JSFactory::getModel("Foto");
И получаю HTTP ERROR 500, что делаю не так?
На сколько я понял если модель имеет название Foto.php и класс называется JshoppingControllerFoto то, он должен ее из контроллера подцеплять автоматический?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка Using $this when not in object context при создании модуля

Автор arrrows163

Ответов: 0
Просмотров: 307
Последний ответ 27.06.2021, 18:33:45
от arrrows163
Произошла ошибка при получении данных json: код состояния http 0. error

Автор Андрей Купцов

Ответов: 2
Просмотров: 2710
Последний ответ 18.12.2019, 10:14:55
от Андрей Купцов
Ошибка "Представление не найдено" в публичной части компонента

Автор denism300

Ответов: 3
Просмотров: 1183
Последний ответ 15.11.2016, 23:37:41
от denism300
Ошибка Asset is not defined

Автор denism300

Ответов: 11
Просмотров: 1101
Последний ответ 27.02.2016, 15:18:21
от fsv
Перенесено: Ошибка при загрузке файла на форму в файле file_upload.php

Автор b2z

Ответов: 0
Просмотров: 774
Последний ответ 19.02.2015, 16:55:12
от b2z