Евгений Корепов

Пользователи
  • Публикации

    416
  • Зарегистрирован

  • Посещение

  • Days Won

    28

Евгений Корепов last won the day on 24 сентября

Евгений Корепов had the most liked content!

О Евгений Корепов

  • Звание
    Продвинутый пользователь
  • День рождения 22 июля

Информация

  • Пол
    Мужчина
  • Город
    Ухта

Посетители профиля

1 201 просмотр профиля
  1. enatechno выше привел ссылки на статьи где все расписано по полочкам.
  2. Не действительны сертификаты SSL Certificates (для web-серверов). У них все сертификаты всегда были бесплатными (поэтому их американские монстры и прижали), платная только проверка пользователя - т.е. один раз проходишь валидацию нужного тебе класса и целый год выпускаешь сертификаты бесплатно.
  3. apptethering довольно убогий (его реализация в дельфи) - написали по быстрому модную технологию и забросили. Если не ошибаюсь, за все время существования компонента ни разу он не был исправлен или доделан. Для вашего случая проще и быстрее использовать Indy (UDP сервер и клиент) - для одновременного получения клиентами сообщения отсылаете его сервером в multicast режиме на какой нибудь порт, клиенты получат его одновременно. В apptethering не знают про multicast, по крайней мере в исходниках не нашел и потоки используются только временами и не предсказуемо.
  4. Я обычно получаю сертификат в https://www.startcomca.com - самый не дорогой сервис. Сначала нужно получить Class 2 Personal Identity Validation за US$59.90, потом можно будет генерировать неограниченное количество подписей. Сервис хорош тем что предоставляет архив с подписями, инструкциями и инструментарием (остальные сервисы дадут текстовый файлик с подписью в непредсказуемом контейнере - и разбирайся сам...). Пинаю потихоньку https://kontur.ru/ca , дабы начали на территории России выдавать сертификаты Code Signing, но пока только за бугром это можно сделать.
  5. ForceQueue не работает под андроидом.
  6. О, спасибо! Значит ListItemImage.OwnsBitmap управляет типом ссылки на Bitmap - False - слабая ссылка, True нормальная ссылка. Вот почему в документации это не указать?
  7. Как в FMX Memo задать размер таба (символа с кодом #9)? По умолчанию он гигантский. Все способы из гугля оперируют или VCL Memo или win api. Нужно мультиплатформенное решение.
  8. У него на гитхабе внизу есть пометка но что за KastriFree project я не успел посмотреть, может там все есть. Под андроидом работает отлично. Давно сам хотел все в отдельном модуле оформить, но тут удачно наткнулся...
  9. PHP один из самых простых в освоении языков. Обычный интерпретатор, т.е. в большинстве случаев, выполняет код строчка за строчкой. Нет привычной отладки (хотя может и есть в каких то средах, но я программирую на php в редакторе FAR Manager), но вы всегда можете вывести значение переменной функциями echo($Переменная) , print_r($Массив) и он высыпет все вам на экран (или в консоль). Запускать скрипт php можно двумя способами Запуск в контексте веб-сервера: Вы обращаетесь к веб серверу по адресу http://www.мойсайт.ru/мой_скрипт.php - веб сервер запускает исполняемый файл php и скармливает ему ваш скрипт и параметы переданные в запросе (Get, post). Эти параметры можно получить из специальных массивов $_GET и $_POST. Запуск ручками: для отладки и всякого другого, вы можете запустить ваш скрипт в консоли (коммандной строке) под любой платформой (линукс, винда...): " php /home/test001.php". Просто попытайтесь освоить язык, он простой, нужно два часа чтоб освоить язык до уровня написания вышеприведенного мной скрипта. По теме - если у вас выводит [], то значит узнать что у вас не так: Выясните сколько строк возвращает запрос к sql серверу echo "Кол-во строк=".mysqli_num_rows($DBResult); Выводите построчно массивы c строками из запроса print_r($row); echo "<br/>\n"; "<br/>\n" - это печатам для перевода на новую строку в браузере или консоли, чтоб не было каши. Ну и так далее... Любая непонятная функция, становится понятной вот так: в браузере, в адресной строке печатаем php mysqli_real_escape_string, и увидите хорошее описание с примерами на родном для вас языке
  10. Наткнулся тут на изящную штуку для приложения с PUSH уведомлениями на Android и Ios. Один объект, все сам делает. Внедрил в одно боевое приложение с 100+ тысячами установок, полет нормальный. Описание тут https://delphiworlds.com/2017/04/firebase-cloud-messaging-android-ios/ Исходный код с примером на гитхабе https://github.com/DelphiWorlds/PushClient Использование максимально простое: uses DW.PushClient; .... private FPushClient: TPushClient; procedure PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); procedure PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); .... procedure TFormMain.InitPushService; begin FPushClient := TPushClient.Create; FPushClient.GCMAppID := ConstGCMAppID; FPushClient.ServerKey := ''; FPushClient.BundleID := ''; FPushClient.UseSandbox := Debug; // Change this to False for production use! FPushClient.OnChange := PushClientChangeHandler; FPushClient.OnReceiveNotification := PushClientReceiveNotificationHandler; try FPushClient.Active := True; except SendError('FPushClient.Active Exception'); end; end; procedure TFormMain.PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); begin if TPushService.TChange.DeviceToken in AChange then begin HDevicePushParams.DeviceID:=FPushClient.DeviceID; HDevicePushParams.DeviceToken:=FPushClient.DeviceToken; GetHTTP(CommandRegisterFCM); // Memo1.Lines.Add('DeviceID = ' + FPushClient.DeviceID); // Memo1.Lines.Add('DeviceToken = ' + FPushClient.DeviceToken); end; end; procedure TFormMain.PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); begin // ShowMessage(ANotification.DataObject.ToString... end; Правда руки не дошли разобраться для чего ему FPushClient.ServerKey := ''; FPushClient.BundleID := ''; Но и без этого работает.
  11. Какая версия php у вас на сервере? И судя по вашему SQL запросу (WHERE mail_index = $zapros), вы ищете данные по почтовому индексу, откуда тогда "id=г. Бишкек, ул. Токтогула, д. 191, кв. 5, под. 1". Волшебство может и случается, но не в программировании. SQL серверу вы должны дать четкие критерии поиска. Вы точно понимаете что хранится в таблице internetshop_users и как оттуда получить данные?
  12. О, это сложная и трудноуловимая ошибка ;-) Вы на Дельфи как условия пишете? Наверное вот так: if then else? А тут тоже язык программирования, и все конструкции одинаковы. Измените esle на else, и все заработает. Говорил же что в блокноте быстро накидал, опечатка...
  13. Если я не ошибаюсь, то ContentType применимо только к контенту получаемому с сервера. То вы указываете что ожидаете с сервера. Можете вообще ничего не отправлять ни в ContentType, ни в Accept. Все равно будет работать. Достаточно на стороне сервера указывать тип отдаваемого контента и обязательно кодировку (header('Content-Type: application/json; charset=utf-8')). В POST вы отправляете просто текст, и уже как вы интерпретируете на его на сервере ваше личное дело.
  14. Все просто. Надо посмотреть на календарь и обнаружить что на дворе 2017 год. Поэтому всякие: выжечь каленым железом. Только UTF8 нам друг. И еще больший друг он нам если в php скрипте на это указать в начале файла: <?php header('Content-Type: application/json; charset=utf-8'); Вот тогда и браузер и ваше приложение будет знать с чем имеет дело и в какой кодировке работает ваше API. Вот накидал в блокноте код php серверной части: <?php header('Content-Type: application/json; charset=utf-8'); $DBHost = "176.126.167.134"; $DBUser = "mmmmmmmmmm"; $DBPassword = "000000000000"; $DBase = "domofonkg"; $DBTable = "internetshop_users"; if (isset($_GET['id'])) { $zapros = $_GET['id']; } esle { exit('{ "status" : "нет параметра запроса"}'); } $DBLink = mysqli_connect($DBHost, $DBUser, $DBPassword, $DBase); if (!$DBLink) { return("<html><script language='JavaScript'>alert('Ошибка соединения с базой! Пожалуйста попробуйте позже.'),history.go(-1)</script></html>"); } $zapros = mysqli_real_escape_string($DBLink, $zapros); $query = "SELECT mail_index, address_of_delivery, fax, country_id, url, phone, company, icq FROM $DBTable WHERE mail_index = $zapros"; if ($DBResult = mysqli_query($DBLink, $query)) { $ResultArray = array(); $Index = 0; while($row = mysqli_fetch_array($DBResult, MYSQLI_ASSOC);) { $ResultArray[$Index] = $row; $Index++; } $ResultJSON = json_encode($ResultArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); echo $ResultJSON; mysqli_free_result($DBResult); } mysqli_close($DBLink); И да, код выдает результат в JSON, дабы ваше приложение могло его по человечески обработать.
  15. Это можно сделать и без реверс-инжиниринга. Воспользуйтесь "Доступ к ЕГРЮЛ и ЕГРИП" https://www.nalog.ru/rn77/service/egrip2/