Это старая версия документа.


A PCRE internal error occured. This might be caused by a faulty plugin

====== Отправка CometQL запросов по http/https ====== Есть случаи когда нет возможности использовать протокол MySQL для соединения с комет сервером. Для таких случаев можно отправлять команды комет серверу по HTTP/HTTPS. <note warning>Это не рекомендованный способ взаимодействия с сервером. Он работает медленнее чем отправка CometQL запросов на прямую.</note> <note warning>Метод работает в тестовом режиме. О неполадках сообщайте в техническую поддержку.</note> <note warning>Метод работает в тестовом режиме. И поэтому интерфейс или адрес для приёма запросов может быть изменён.</note> Для отправки запроса <code> http://comet-server.ru/cometapi.php?query=show+tables&id=15&key=lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8 </code> * query это CometQL запрос * id это [[comet:dev_id|идентификатор разработчика]] * key это [[comet:dev_id|секретный ключ разработчика]] Ответ придёт в json формате. В случаи успеха ответ будет таким <code>{"data":[{"Tables":"users_auth"},{"Tables":"users_time"},{"Tables":"users_messages"},{"Tables":"pipes_messages"},{"Tables":"users_in_pipes"},{"Tables":"pipes"},{"Tables":"pipes_settings"}]}</code> В случаи ошибки ответ будет таким <code>{"error":2,"text":"Syntax error in query","see":"https:\/\/comet-server.ru\/wiki\/doku.php\/comet:cometql:error"}</code> ===== Примечание ===== Ниже приведён исходный код файла выполняющего роль промежуточного звена которое принимает запросы по HTTP и передаёт их дальше по протоколу mysql. Вы можете его скачать и поставить на свой хостинг чтобы обезопасить себя от изменений в интерфейсе работы HTTP api. <file php cometapi.php> <?php header('Content-Type: application/json; charset=utf-8'); header("Access-Control-Allow-Origin: *"); ini_set('display_errors','on'); error_reporting (E_ALL); function getParam($name) { if(isset($_GET[$name])) { return trim(urldecode($_GET[$name])); } else if(isset($_POST[$name])) { return trim(urldecode($_POST[$name])); } return NULL; } $q = getParam("query"); $dev_id = getParam("id"); $dev_key = getParam("key"); if($q == NULL || $dev_id == NULL || $dev_key == NULL) { header('HTTP/1.1 400 Bad Request'); die(json_encode(array("error" => "Bad Request, query, id or key is empty"))); } $q = trim(urldecode($q)); $link = mysqli_connect("app.comet-server.ru", $dev_id, $dev_key, "CometQL_v1"); if ( !$link ) { header('HTTP/1.1 403 Bad Request'); die(json_encode(array("error" => "Невозможно подключение к CometQL"))); } $result = mysqli_query ( $link, $q ); if(mysqli_errno($link) != 0) { header('HTTP/1.1 400 Bad Request'); die(json_encode(array("error" => mysqli_errno($link), "text" => mysqli_error($link), "see" => "https://comet-server.ru/wiki/doku.php/comet:cometql:error"))); } $data = array(); while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } header('HTTP/1.1 200 OK'); die(json_encode(array("data" => $data))); </file>

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
L​ Y N Q T