для тех из вас, кто использовал FlexCodeSDK (https://flexcodesdk.com/) для разработки приложений с помощью DigitalPersona, там есть пример PHP, в котором используется стандартное автономное приложение PHP, не входящее ни в какие фреймворки. Кто-нибудь из вас пытался поработать над этим с помощью CodeIgniter? У меня есть проблемы, когда FlexCodeSDK пытается получить запросы от определенного URL, рабочий пример такой:
$url_register = base64_encode($base_path."register.php?user_id=".$row['user_id']);
$register = "<a href='finspot:FingerspotReg;$url_register' class='btn btn-xs btn-primary' onclick=\"user_register('".$row['user_id']."','".$row['user_name']."')\">Register</a>";
У тебя есть $url_register
на base64, который будет передан FlexCodeSDK, теперь он находит register.php и читает ответ, ответ выглядит так:
if (isset($_GET['user_id']) && !empty($_GET['user_id'])) {
include 'include/global.php';
include 'include/function.php';
$user_id = $_GET['user_id'];
echo "$user_id;SecurityKey;".$time_limit_reg.";".$base_path."process_register.php;".$base_path."getac.php";
}
Он повторяет ответ, который отправляет другой URL (с расширением .php). Я попробовал это на CodeIgniter, отправив URL-адрес, который доступен на routs.php, но он не запускается FlexCodeSDK в отличие от примера.
$url_register = base64_encode(base_url(members/register/register_fingerprint) . '?member_id=2');
Вот запись о моих маршрутах.
$route['members/register/register_fingerprint'] = 'Members_Controller/register_fingerprint';
И на моем Member_Controller, вместо того, чтобы возвращать эхо, так как этот контроллер не отображает само представление, я рендерил представление и возвращал данные, которые должны отображаться в самом представлении:
public function register_fingerprint() {
$member_id = $_GET['member_id'];
$this->session->set_userdata('sample_member_id', $member_id);
$data['result'] = "$member_id;SecurityKey;" . TIME_LIMIT_REG . ";" .
base_url() . "members/process_fingerprint;" .
base_url() . "members/get_device_account";
$this->load->view('pages/members/register_fingerprint', $data);
}
И вот мой взгляд register_fingerprint.php
<?php echo $result; ?>
Каким-то образом на DigitalPersona он смог открыть FlexCodeSDK, чтобы запросить мой отпечаток пальца 4 раза, после чего ничего не происходит, register_fingerprint как-то не вызывается, так что, скорее всего, следующие URL-адреса также не вызываются (members / process_fingerprint and members / get_device_account). Я уверен, что register_fingerprint не вызывается, потому что я разместил там сеанс, и когда я пытаюсь отобразить сеансы, которые у меня есть, я не могу найти sample_member_id
на сессии. Проблема с использованием FlexCodeSDK заключается в том, что очень сложно отследить реакцию самого SDK. Любой разработчик, имеющий опыт использования этого SDK с PHP Framework, такой как CodeIgniter, может помочь мне в этом?
Задача ещё не решена.
Других решений пока нет …