如何使用 TAD class php 解决连接问题
How do I solve Connection problem using TAD class php
我正在使用 TAD class php 连接到考勤机,但我尝试了很多解决方案和代码但都失败了,请有人帮助我。
这是我使用 php codeigniter 的考勤管理系统,现在我正在使用手动方法从机器获取考勤到 MySql。每天清晨,我使用机器公司提供的软件从机器上下载所有考勤,然后该软件将所有考勤日志下载到 MS Access db 文件中,然后我从这个 file.But 读取考勤,现在我想要直接连接到机器。
这是我尝试使用 TAD class 的一些代码,但一如既往地出现连接错误。
<?php
require 'vendor/autoload.php';
require 'lib/TADFactory.php';
require 'lib/TAD.php';
require 'lib/TADResponse.php';
require 'lib/Providers/TADSoap.php';
require 'lib/Providers/TADZKLib.php';
require 'lib/Exceptions/ConnectionError.php';
require 'lib/Exceptions/FilterArgumentError.php';
require 'lib/Exceptions/UnrecognizedArgument.php';
require 'lib/Exceptions/UnrecognizedCommand.php';
use TADPHP\TADFactory;
use TADPHP\TAD;
try {
$tad = (new TADFactory(['ip' =>
'192.168.2.200','com_key'=>0]))->get_instance();
if($tad->is_alive())
{
echo "done";exit();
//$tad->disable();
$att_logs = $tad->get_att_log();
// print_r($att_logs);exit();
$att_logs=$att_logs->filter_by_date(['start' => date('Y-m-d'),'end' =>
date('Y-m-d')]);
if ($att_logs->is_empty_response())
{
my_log('Does not have logs recorded');
//continue;
}
else
{
$array_att_logs = $att_logs->to_array();
$device_logs = array();
$counter=1;
if(!empty($array_att_logs))
foreach($array_att_logs as $key =>$val )
{
foreach($val as $log)
{
$device_logs[]= array(
'institutes_inst_id' => $row['inst_id'],
'employees_machine_user_id' => $log['PIN'],
'date' => date('Y-m-d',strtotime($log['DateTime'])),
'time' => date('H:i:s',strtotime($log['DateTime']))
);
$counter++;
}
}
add_att_logs($device_logs);
//$tad->enable();
my_log('Device in ' . $row['inst_name']. '['.$row['ip_address']. '] has ' .
$counter . ' records');
}
}
else
{
echo "not";exit();
my_log('Device in ' . $row['inst_name'] . ' is off-line');
continue;
}
}
catch(Exception $e)
{
my_log('Device in ' . $row['inst_name']. '['.$row['ip_address']. '] is
offline');
}
?>
从 "Access Control Software" 获取设备的 'ip' 和 'comm_key'。也许你在这里提供的 ip 和 comm_key
$tad = (new TADFactory(['ip' =>'192.168.2.200','com_key'=>0]))->get_instance();
错了。
您还需要在 php.ini 文件中启用 php_sockets.dll 和 php_soap.dll。
我正在使用 TAD class php 连接到考勤机,但我尝试了很多解决方案和代码但都失败了,请有人帮助我。
这是我使用 php codeigniter 的考勤管理系统,现在我正在使用手动方法从机器获取考勤到 MySql。每天清晨,我使用机器公司提供的软件从机器上下载所有考勤,然后该软件将所有考勤日志下载到 MS Access db 文件中,然后我从这个 file.But 读取考勤,现在我想要直接连接到机器。 这是我尝试使用 TAD class 的一些代码,但一如既往地出现连接错误。
<?php
require 'vendor/autoload.php';
require 'lib/TADFactory.php';
require 'lib/TAD.php';
require 'lib/TADResponse.php';
require 'lib/Providers/TADSoap.php';
require 'lib/Providers/TADZKLib.php';
require 'lib/Exceptions/ConnectionError.php';
require 'lib/Exceptions/FilterArgumentError.php';
require 'lib/Exceptions/UnrecognizedArgument.php';
require 'lib/Exceptions/UnrecognizedCommand.php';
use TADPHP\TADFactory;
use TADPHP\TAD;
try {
$tad = (new TADFactory(['ip' =>
'192.168.2.200','com_key'=>0]))->get_instance();
if($tad->is_alive())
{
echo "done";exit();
//$tad->disable();
$att_logs = $tad->get_att_log();
// print_r($att_logs);exit();
$att_logs=$att_logs->filter_by_date(['start' => date('Y-m-d'),'end' =>
date('Y-m-d')]);
if ($att_logs->is_empty_response())
{
my_log('Does not have logs recorded');
//continue;
}
else
{
$array_att_logs = $att_logs->to_array();
$device_logs = array();
$counter=1;
if(!empty($array_att_logs))
foreach($array_att_logs as $key =>$val )
{
foreach($val as $log)
{
$device_logs[]= array(
'institutes_inst_id' => $row['inst_id'],
'employees_machine_user_id' => $log['PIN'],
'date' => date('Y-m-d',strtotime($log['DateTime'])),
'time' => date('H:i:s',strtotime($log['DateTime']))
);
$counter++;
}
}
add_att_logs($device_logs);
//$tad->enable();
my_log('Device in ' . $row['inst_name']. '['.$row['ip_address']. '] has ' .
$counter . ' records');
}
}
else
{
echo "not";exit();
my_log('Device in ' . $row['inst_name'] . ' is off-line');
continue;
}
}
catch(Exception $e)
{
my_log('Device in ' . $row['inst_name']. '['.$row['ip_address']. '] is
offline');
}
?>
从 "Access Control Software" 获取设备的 'ip' 和 'comm_key'。也许你在这里提供的 ip 和 comm_key
$tad = (new TADFactory(['ip' =>'192.168.2.200','com_key'=>0]))->get_instance();
错了。
您还需要在 php.ini 文件中启用 php_sockets.dll 和 php_soap.dll。