kamshory / ZKLibrary

ZKLibrary is PHP library for reading and writing data to attendance device using UDP protocol. This library useful to comunicate between web server and attendance device directly without addition program. This library is implemented in the form of class. So that you can create an object and use it functions.
GNU General Public License v2.0
193 stars 176 forks source link

MB360 #123

Open dmiranda1102 opened 1 year ago

dmiranda1102 commented 1 year ago

Alguien me puede ayudar, no puedo obtener los usuarios ni asistencias en zkteco MB360

jmaxb2691 commented 1 year ago

Hola! Has logrado comprobar que la conexión se realizó? Por otro lado tienes la extensión socket activa en el archivo php.ini?

dmiranda1102 commented 1 year ago

Hola! agradezco tu respuesta y espero te encuentres muy bien. Logro establecer la conexión con el dispositivo y tengo activa la extensión socket en el php.ini, pero cuando quiero traer los usuarios que se encuentran en el dispositivo no lo logro, lo mismo pasa cuando quiero obtener las entradas y salidas.

esa es la salida el dispositivo.

Library Loaded Requesting for connection Connected disabling device ZKLibrary Object ( [ip] => 192.168.100.98 [port] => 4370 [socket] => Resource id #3 [protocol] => TCP [session_id] => 0 [received_data] => [start_data] => 8 [user_data] => Array ( ) [attendance_data] => Array ( ) [timeout_sec] => 5 [timeout_usec] => 500000 ) Setting user with new data

jmaxb2691 commented 1 year ago

``Pondré el código que utilizo, y que me funciona, a ver si puedes compararlo con el tuyo. Si solo quieres ver los usuario basta con la funcion getUsers ya si quieres guardarlos en un base de datos debes crear tus tablas para poder usar esa data.

Un dato más. Tu dispositivo no debe estar con el DHCP activo. Recomiendo usar el un ip estático y además tanto la máscara de subred y el DNS también deben estar de acuerdo a tu router/modem.

Dejo aquí el codigo completo que utilizo tanto para obtener los usuarios y las asistencias y asimismo agregar todo a la db. `<?php require 'zklibrary.php';

$zk = new ZKLibrary('192.168.1.214', 4370); $zk->connect(); $zk->disableDevice();

$users = $zk->getUser(); $attendance = $zk->getAttendance();

$conn = mysqli_connect("localhost", "root","","zkdb"); if($conn -> connect_errno){ echo "Error al connectar con MySQL:" .$conn -> connect_error; exit(); }

foreach($users as $key => $row){

$r1 = $row[0]; $r2 = $row[1]; $r3 = $row[2];

// Usar este fragmento para comprobar la data que será transferida a la db

/ echo "< pre >"; echo $r1."|", $r2."|", $r3."
";
echo <" /pre >";
/

$sql = "INSERT IGNORE INTO users(uid,name,role) VALUES ('$r1','$r2','$r3')";

//$run_query = mysqli_query($conn,$sql); if ($conn->query($sql) === TRUE){ echo "Nuevo record creado"; } else{ echo "Error:".$sql."
".$conn->error; } }

foreach($attendance as $k => $value){

$a1 = $value[1]; $a2 = $value[2]; $a3 = $value[3];

$sql = "INSERT IGNORE INTO attendance(uid,state,time) VALUES ('$a1','$a2','$a3')";

//$run_query = mysqli_query($conn,$sql); if ($conn->query($sql) === TRUE){ echo "Nuevo record creado"; } else{ echo "Error:".$sql."
".$conn->error; } }

Me comentas cualquier cosa.

Saludos,

$zk->enableDevice(); $zk->disconnect(); ?> `